2015-01-21 19 views
-1

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

在这里,我用这个代码,但它不工作

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

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

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

谢谢

回答

1

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

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 
0

试试这个写到MySQL:

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

MySQL中期望的日期时间字段是过去它存储在这种格式

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

你最好使用划时代值,而不是人类可读的日期字符串。只有当你必须向用户显示日期时(添加语言环境等等..),才能使用UTC时代值来做所有的事情并将其转换为人类可读的字符串。

0

当您在您的视图做strtotime($s);
这样你就可以<?php echo date('Y-m-d H:i:s',$row['date']) ?>

相关问题