我需要格式化并将日期插入到mysql表中,这是datetime的类型,我是从php做的。
这是声明
$timestamp ="22-11-2015+00:00:00";
$mysqltime = date ("d-m-Y H:i:s", $timestamp);
但是当我插入表格时,日期错误,显示31-12-1969 19:00:22
可能是什么问题?
答案 0 :(得分:3)
应该是
$timestamp ="22-11-2015+00:00:00";
$mysqltime = date ("d-m-Y H:i:s", strtotime($timestamp));
因为date
期待它的第二个参数是一个数字,特别是自1970年1月1日午夜以来的秒数。
答案 1 :(得分:1)
我认为更正格式为:
$mysqltime = date_format ($timestamp,"d-m-Y H:i:s");
让我知道这是否有效
答案 2 :(得分:1)
date函数需要第二个参数的整数时间戳。
这个MSQL插入语句可以正常工作:
INSERT INTO mytable (birthday) ('2015-11-22 00:00:00')
如果您在PHP中使用数据库类并且您正在调用的函数使用的是PHP日期对象,那么您必须使用date()函数构造PHP日期对象。
或者,如果您想在将字符串发送到要插入的数据库之前使用PHP代码重新格式化PHP中的日期,那么我认为您使用strtodate来获取PHP日期对象,然后使用date()
$phpdate = strtodate('d-m-Y H:i:s', '22-11-2015 00:00:00')
$dateformysql = date('Y-m-d H:i:s', $phpdate)
databaseclass.dotheinsert($mysqldate)
答案 3 :(得分:1)
这应该有效,但对我不起作用!
$timestamp ="22-11-2015+00:00:00";
$mysqltime = date ("d-m-Y H:i:s", strtotime($timestamp));
我认为这是因为我的国家标准格式(LC_TIME)是“Y-m-d”而不是“d-m-Y”。然而,这完美地运作:
$timestamp ="22-11-2015+00:00:00";
// The '+' sign needs to be escaped!!
$time = date_create_from_format( "d-m-Y\+H:i:s", $timestamp);
$mysqltime = $time->format( 'd-m-Y H:i:s' );
另一方面,MySQL使用日期格式“YYYY-MM-DD”作为标准。正确的格式字符串应为:
$mysqltime = date ("Y-m-d H:i:s", strtotime($timestamp));
// or second option
$mysqltime = $time->format( 'Y-m-d H:i:s' );