什么是正确的格式传递给日期()函数在PHP中,如果我想将结果插入到一个MySQL datetime类型列?
我一直在尝试date('Y-M-D G: I:s'),但每次都只是插入“0000-00-00 00:00:00”。
什么是正确的格式传递给日期()函数在PHP中,如果我想将结果插入到一个MySQL datetime类型列?
我一直在尝试date('Y-M-D G: I:s'),但每次都只是插入“0000-00-00 00:00:00”。
当前回答
用PHP格式化MySQL datetime
$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";
其他回答
如果不使用时间戳,就没有必要使用PHP中的date()方法。如果dateposting是一个datetime列,你可以像这样插入当前日期:
$db->query("INSERT INTO table (dateposted) VALUES (now())");
这里有一个替代的解决方案:如果在PHP中将日期作为时间戳,那么不用PHP处理它,而是使用FROM_UNIXTIME函数让DB负责转换它。
mysql> insert into a_table values(FROM_UNIXTIME(1231634282));
Query OK, 1 row affected (0.00 sec)
mysql> select * from a_table;
+---------------------+
| a_date |
+---------------------+
| 2009-01-10 18:38:02 |
+---------------------+
IMO除了在前面的回答中提供的date()函数选项外,您还应该仔细考虑其使用的服务器时区设置,这可能与数据库设置不同。如果需要UTC时区,那么gmdate()函数(它具有与date()相同的选项)对于特定情况会更方便。
用PHP格式化MySQL datetime
$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";
$date_old = '23-5-2016 23:15:23';
//Date for database
$date_for_database = date ('Y-m-d H:i:s'", strtotime($date_old));
//Format should be like 'Y-m-d H:i:s'`enter code here`