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

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

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

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

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

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

我想以日期时间格式将此字符串存储到 mysql 数据库。在 sql 查询 运行

上提取相同的字符串

谢谢

试试这个写入 mysql:

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

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

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

如果您从该日期选择器输入的字符串格式是这样的:

21 December 2012 - 03:45 PM

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

YYYY-MM-DD HH:MM:SS

The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format.

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

从 PHP 开始,您可以使用 DateTime class。提供您在日期选择器中的格式:

$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

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