PHP 上的日期问题


Date issue on PHP

我们有一个购物系统,可以收到一些日期正确的订单,但其中一些显示为1970年。我们使用以下代码:

$statement = $db->prepare("INSERT INTO tabloAdi (tarih) VALUES(:tarih)");
$statement->execute([ ":tarih" => date("Y-m-d H:i:s", strtotime("now"))]);

数据库是 MySQL表引擎是InnoDB塔里赫专栏是数据时间

我们的服务器 Centos 6.7。

这些不正确的日期会有什么问题?谢谢。

1. 格式化

SQL 中DATETIME列的格式为:

YYYY-MM-DDThh:nn:ss[.mmmmmmm]

因此,Y-m-d H : i : s作为格式不正确。要比较:

//your code output
2016-02-12 11 : 16 : 55
//required formatting
2016-02-12EST11:16:55

更改此设置:

date("Y-m-d H : i : s", strtotime("now"))

对此:

date("Y-m-dTH:i:s", strtotime("now"))
<小时 />

2. 占位符

占位符:tarih不是tarih(请注意冒号),因此应确保占位符的键正确。改变:

$statement->execute([ "tarih" //...

自:

$statement->execute([ ":tarih" //...
<小时 />

3. date()

这不是不正确的,但很有用:默认情况下,date()采用当前时间,因此您无需指定strtotime("now")。因此,您可以更改:

date("Y-m-dTH:i:s", strtotime("now"))

自:

date("Y-m-dTH:i:s");
<小时 />

完全校正

$statement = $db->prepare("INSERT INTO tabloAdi (tarih) VALUES(:tarih)");
$statement->execute([ ":tarih" => date("Y-m-dTH:i:s")]);

tarih应该是:tarih的,像这样

$statement->execute([ ":tarih" => date("Y-m-d H : i : s", strtotime("now"))]);