将codeigniter mysql datetime列设置为time()始终将其设置为0

时间:2010-05-13 21:55:47

标签: mysql unix datetime codeigniter timestamp

我正在将Codeigniter用于一个小项目,除了日期之外我的模型正常工作。我有一个专栏:

created_at datetime not null

我的模型代码在其数组中包含传递给db-> insert:

'created_at'=>时间()

这产生的日期时间值为00:00:00。

当我将其更改为:

'created_at'=> “from_unixtime(”。time()。“)”

它仍然会产生0日期时间值。

我做错了什么?如何将此字段设置为给定的unix时间?另外,我知道mysql会自动为你设置TIMESTAMP列 - 我对这个解决方案不感兴趣。

到目前为止,我无法在网上找到完整的例子。

2 个答案:

答案 0 :(得分:2)

datetime需要一个YYYY-MM-DD字符串,其中-with时间()产生的UNIX时间戳是1970年1月1日以来的整数秒。这两个日期完全不同。

如果您希望使用PHP填充MySQL datetime字段,则必须使用:

date('Y-m-d h:i:s');

或者其他类似的东西。

答案 1 :(得分:0)

避免now(),因为now()将当前时间作为Unix时间戳返回,根据配置文件中的“时间参考”设置,以服务器的本地时间或GMT为基准。如果您不打算将主时间参考设置为GMT(如果您运行的网站允许每个用户设置自己的时区设置,您通常会这样做),使用此功能对PHP time()没有任何好处功能。