2

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

谁能建议我如何成功地将字符串转换为日期?

4

2 回答 2

0

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

$requested = str_replace('/', '.', $_REQUEST["TextboxRequiredBy"]);
于 2012-07-30T16:04:17.993 回答
0

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

链接到 PHP 文档

于 2012-07-30T16:07:35.303 回答