php将字符串转换为日期时间" 2012年12月21日 - 03:45 PM"

时间:2015-01-21 09:04:44

标签: php mysql datetime-format

我正在使用引导日期时间选择器来选择日期和时间。它给了我输出 " 2012年12月21日 - 03:45 PM"现在我想将它存储在MySQL数据库上我的问题是如何将此字符串存储到MySQL数据列(数据类型=日期时间)。

这里我使用此代码,但它不起作用

$s = '21 December 2012 - 03:45 PM';

$date = strtotime($s);
echo date('d/M/Y:H:i:s', $date);

我想以日期时间格式将此字符串存储到mysql datbase。在sql查询运行中提取相同的字符串

谢谢

5 个答案:

答案 0 :(得分:1)

如果来自该datepicker的输入字符串格式具有:

21 December 2012 - 03:45 PM

您需要首先转换适用于DATETIME字段的格式:

YYYY-MM-DD HH:MM:SS
  

DATETIME类型用于包含日期和时间部分的值。 MySQL在' YYYY-MM-DD HH:MM:SS'中检索并显示DATETIME值。格式。

参考:http://dev.mysql.com/doc/refman/5.1/en/datetime.html

从PHP开始,您可以使用DateTime类。提供datepicker中的格式:

$s = '21 December 2012 - 03:45 PM'; // input from date picker
$date = DateTime::createFromFormat('d F Y - G:i a', $s);
$insert_date = $date->format('Y-m-d H:i:s');
echo $insert_date;
// rest of your mysql insertion codes

答案 1 :(得分:0)

尝试使用这个来写入mysql:

$mysqldate = date( 'Y-m-d H:i:s', $date )

答案 2 :(得分:0)

MySQL期望DateTime字段过去以此格式存储

YYYY-MM-DD HH:MM:SS

所以将此声明更改为

echo date('Y-m-d H:i:s', $date);

当然,您必须在SQL语句中将该字符串包装在这个

$s = '21 December 2012 - 03:45 PM';

$a_date = date('Y-m-d H:i:s', strtotime($s));

$sql = "INSERT INTO table (the_date) VALUES ('$a_date')";

答案 3 :(得分:0)

您最好使用纪元值而不是人类可读的日期字符串。使用UTC纪元值完成所有内容并仅在必须向用户显示日期时添加人类可读字符串(添加语言环境等等。等等。)

答案 4 :(得分:0)

当你做strtotime($s);时 所以在你看来你可以<?php echo date('Y-m-d H:i:s',$row['date']) ?>