我正在尝试将PHP表单中的日期存储到MS SQL数据库中,我真的很挣扎。日期是字符串格式,并以'DD / MM / YYYY'格式,所以我试图使用strtotime()来转换它,但我只是从1970-01-01 01:00:00得到。
我尝试过的代码如下:
$requested = $_REQUEST["TextboxRequiredBy"];
var_dump($requested);
echo "<br/>";
$daterequested = date("Y-m-d H:i:s", strtotime($requested));
echo $requested . " becomes " . $daterequested . "<br/>";
mssql_bind($stmt, "@Parameter", $daterequested, SQLFLT8, false);
我在屏幕上看到的是:
string(10) "31/07/2012"
31/07/2012 becomes 1970-01-01 01:00:00
Warning: mssql_bind(): Unable to set parameter in xxx.php on line 110
Warning: mssql_execute(): message: Procedure or function 'SPNAME' expects
parameter '@Parameter', which was not supplied. (severity 16) in xxx.php
我一直在搜索,我似乎无法找到成功转换字符串的方法。我在另一个运行日期比较的页面上使用了以下内容,但这会返回一个错误,即date_format()期望参数1为DateTime,给定布尔值:
$datefrom = date_create($requested);
$daterequestedfrom = date_format($datefrom,'Y-m-d H:i:s');
有人可以建议我如何成功地将字符串转换为日期吗?
答案 0 :(得分:0)
出于某种原因,PHP不喜欢strtotime中的斜杠。将它们转换为点,脚本应该可以工作。
$requested = str_replace('/', '.', $_REQUEST["TextboxRequiredBy"]);
答案 1 :(得分:0)
该日期格式不是默认格式。您可能想查看date_create_from_format函数。这将允许您指定您尝试输入的时间字符串的格式。