Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将codeigniter mysql datetime列设置为time()始终将其设置为0_Mysql_Unix_Datetime_Codeigniter_Timestamp - Fatal编程技术网

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

将codeigniter mysql datetime列设置为time()始终将其设置为0,mysql,unix,datetime,codeigniter,timestamp,Mysql,Unix,Datetime,Codeigniter,Timestamp,我在一个小项目中使用Codeigniter,除了日期之外,我的模型工作正常。我定义了一个列: 在datetime创建的\u不为空 我的模型代码包含在传递到db->insert的数组中: '已在'=>时间()创建 这将生成日期时间值0000-00-00:00:00 当我将其更改为: “从\u unixtime(“.time()”)在“=>”处创建的\u” 它仍然生成0日期时间值 我做错了什么?如何将此字段设置为给定的unix时间?另外,我知道mysql会自动为您设置时间戳列——我对这个解决方案不感

我在一个小项目中使用Codeigniter,除了日期之外,我的模型工作正常。我定义了一个列:

在datetime创建的\u不为空

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

'已在'=>时间()创建

这将生成日期时间值0000-00-00:00:00

当我将其更改为:

“从\u unixtime(“.time()”)在“=>”处创建的\u”

它仍然生成0日期时间值

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


到目前为止,我在网上还找不到一个完整的例子。

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

如果希望使用PHP填充MySQL日期时间字段,则必须使用:

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

或者是类似的东西。

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

谢谢。从codeigniter示例来看,active record类似乎在发挥某种魔力,将unix时间戳转换为日期,我认为我只是没有正确的列命名约定或其他什么。现在我明白了这并没有什么神奇之处,他们的例子只是假设一个整数日期字段。实际上,你知道为什么from_unixtime方法不起作用吗?@Jake。活动记录将逃避您在创建时放入的内容