将PHP time()输出与MySQL现在()的精确匹配

时间:2015-04-14 07:37:56

标签: php mysql time

我在代码库中工作,我有一个不幸的情况。

正在将一行插入MySQL数据库,其中time列设置为null,但该列为nn,默认为NOW()

但是,我需要这个价值。如果不使用select查询来拉动那段时间,有什么方法可以确保 PHP函数的输出是完全相同的值吗?

总是time() === now()吗?时区设置可以搞砸了吗?像这样做代码的含义是什么?

2 个答案:

答案 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()

希望有帮助! :)