我正在尝试插入日期,让我们说CURDATE()
到sql DateTime
字段。
我的日期格式为:28/01/2008
当我尝试将其插入SQL时,我只得到了零。
那我怎样才能正确转换呢?
答案 0 :(得分:24)
$newdate = date('Y-m-d', strtotime($olddate));
答案 1 :(得分:6)
我试图插入日期,比方说 CURDATE()到sql DateTime 字段。
$timestamp = strtotime($old_date);
$mydate = date('Y-m-d H:i:s', $timestamp);
答案 2 :(得分:6)
由于您使用的是欧洲日期符号(dd / mm / yyyy), strtotime 函数将返回0(而日期将转换为1970-01-01 )如果您不使用 - 或。作为分隔符。
因此,如果您想使用strtotime,那么您将不得不稍微更改日期字符串:
$olddate = '28/01/2008';
$newdate = strtotime(str_replace('/', '-', $olddate));
$ newdate现在应该包含'2008-01-28'...
答案 3 :(得分:3)
答案 4 :(得分:1)
我正在尝试插入一个日期,让我们说CURDATE()到一个sql DateTime字段。
为什么不直接使用MySQL功能?
insert tbl (id, other, datecol)
values(NULL, 'abcdef', CURDATE());
我的日期格式为:28/01/2008
如果它不是CURDATE(),而是一个dd / mm / yyyy格式的PHP变量,那么请参阅此MySQL man page以了解如何格式化文字。安全格式为YYYY-MM-DD
和YYYYMMDD
,没有时间。
$date = '28/01/2008';
$query = "insert tbl (id, other, datecol)
values(NULL, 'abcdef', '" . date('Ymd', strtotime($date)) . "');";
注意:yyyymmdd也是SQL Server中的有效格式。