PHP日期:遇到非常好的数值

时间:2012-07-30 16:01:43

标签: php sql-server

我正在尝试将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');

有人可以建议我如何成功地将字符串转换为日期吗?

2 个答案:

答案 0 :(得分:0)

出于某种原因,PHP不喜欢strtotime中的斜杠。将它们转换为点,脚本应该可以工作。

$requested = str_replace('/', '.', $_REQUEST["TextboxRequiredBy"]);

答案 1 :(得分:0)

该日期格式不是默认格式。您可能想查看date_create_from_format函数。这将允许您指定您尝试输入的时间字符串的格式。

Link to PHP documentation