php 将字符串转换为日期时间“2012 年 12 月 21 日 - 下午 3:45”


php convert string to date time "21 December 2012 - 03:45 PM"

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

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

$s = '21 December 2012 - 03:45 PM';
$date = strtotime($s);
echo date('d/M/Y:H:i:s', $date);

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

谢谢

如果来自

该日期选择器的输入字符串格式如下所示:

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 类。 提供日期选取器中的格式:

$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

试试这个写到 mysql:

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

您最好使用纪元值而不是人类可读的日期字符串。使用 UTC 纪元值完成所有工作,并且仅在必须向用户显示日期(添加区域设置等)时才转换为人类可读的字符串。等等)。

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')";

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