我在代码库中工作,我有一个不幸的情况。
正在将一行插入MySQL数据库,其中time
列设置为null
,但该列为nn
,默认为NOW()
。
但是,我需要这个价值。如果不使用select查询来拉动那段时间,有什么方法可以确保 PHP函数的输出是完全相同的值吗?
总是time() === now()
吗?时区设置可以搞砸了吗?像这样做代码的含义是什么?
答案 0 :(得分:2)
很少有事情
Mysql now()和PHP time()不一样。 PHP time()
将是数字的unixtime标记表示形式,其中mysql now()
的格式为Y-m-d H:i:s
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2015-04-14 13:15:10 |
+---------------------+
1 row in set (0.00 sec)
在php time()
中会返回1428997570
在mysql中,您可以使用函数unix_timestamp()
mysql> select unix_timestamp() ;
+------------------+
| unix_timestamp() |
+------------------+
| 1428997518 |
+------------------+
最重要的部分是如果apache时区和mysql时区不匹配,那么您可能会使用time()
和unix_timestamp()
得到不同的值,因此比较失败
答案 1 :(得分:1)
time()PHP中的函数返回自1970年以来的时间,以及: time in php manual
MySQL中的函数等于:UNIX_TIMESTAMP:unix_timestamp from MySQL manual
前一个时间()== unix_timestamp()
希望有帮助! :)