我有一个日期时间来自一个格式为12:00 PM Sat Mar 15
的精选表格纯粹出于审美原因。 PHP strtotime
函数将此转换为(并且可能是正确的):1394866800
。
但是,当我为数据库$db_time = date('Y-m-d H:i:s', $time_req);
准备时间时,我得到2014-03-15 00:00:00
。有没有办法保持我的视觉吸引力时间显示,但在我的MySQL数据库中输入正确的格式?
答案 0 :(得分:2)
问题是您的输入采用非标准格式,因为时间是先到,然后是星期几,然后是月份和月份。你需要告诉PHP如何解释这个。
您可以使用date_create_from_format
,如下所示:
$formatted_date = '12:00 PM Sat Mar 15';
// to use your POST data, use $formatted_date = $_POST['time_req'];
echo date_create_from_format('H:i A D M j', $formatted_date)->format('Y-m-d H:i:s');
<强>输出:强>
2014-03-15 12:00:00
注意:以上是方法DateTime::createFromFormat
的单行程序版本,正如@MarkBaker在评论中所指出的那样。你也可以这样做:
$formatted_date = '12:00 PM Sat Mar 15';
// to use your POST data, use $formatted_date = $_POST['time_req'];
// create an object
$mydate = DateTime::createFromFormat('H:i A D M j', $formatted_date);
// invoke the format method
echo $mydate->format('Y-m-d H:i:s');
答案 1 :(得分:1)
使用DateTime::createFromFormat()
$st = "12:00 PM Sat Mar 15";
$datetime = DateTime::createFromFormat("H:i A D M j", $st);
$mysql_formatted = $datetime->format("Y-m-d H:i:s");