Php 在提交MySQL之前将字符串转换为日期

Php 在提交MySQL之前将字符串转换为日期,php,mysql,string,date,post,Php,Mysql,String,Date,Post,我一直在尝试在MySQL中将字符串日期转换为日期字段。 在客户端,以字符串形式提交更方便用户 以下是我到目前为止在php方面的经验: $fullname = $_POST['fullname']; $dateofdeath = $_POST['dateofdeath']; $date = STR_TO_DATE('$dateofdeath','%d,%m,%Y'); $sql = "INSERT INTO FRSLNamelist (fullname,dateofdeath) VALUES ('

我一直在尝试在MySQL中将字符串日期转换为日期字段。 在客户端,以字符串形式提交更方便用户

以下是我到目前为止在php方面的经验:

$fullname = $_POST['fullname'];
$dateofdeath = $_POST['dateofdeath'];
$date = STR_TO_DATE('$dateofdeath','%d,%m,%Y');
$sql = "INSERT INTO FRSLNamelist (fullname,dateofdeath) VALUES ('$fullname','$date')";
我得到-
致命错误:调用未定义的函数STR\u to\u DATE()

这两个字段都作为文本提交

我对google和stackoverflow进行了很好的搜索,但它们主要是查询和转换,而不是转换然后提交


为所有能提供帮助的人干杯。

请尝试以下代码

将字符串转换为时间戳日期

date_default_timezone_set('UTC');
$timestamp = strtotime($_POST['dateofdeath']);
$date=date("Y-m-d", $timestamp);
$sql = "INSERT INTO FRSLNamelist (fullname,dateofdeath) VALUES ('$fullname','$date')";

STR\u TO\u DATE
是一个MySQL函数,您在PHPPlease中使用它,不要将
$\u POST
数据直接放在查询中。这是完全不计后果的,并且会给你带来严重的麻烦,因为你已经创建了一个“由于不”。仍然会得到相同的错误。我不需要时间,所以我希望避免使用字符串到时间函数。您可以更改日期的存储格式,使用日期('Y-m-d')并避免H:I:s,因为它是时间格式。**这就是返回的内容:*
警告:strottime()[function.strottime]:依赖系统的时区设置是不安全的。您*必须*使用date.timezone设置或date\u default\u timezone\u set()函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,则很可能是您拼错了时区标识符。我们为“WST/8.0/no DST”选择了“Australia/Perth”,取而代之的是
致命错误:函数名称必须是字符串
date\u default\u timezone\u set('UTC');在代码开头添加此代码,并检查itz是否工作。