2014-11-04 447 views
1

如何转换10/25/2014 14:00 PM2014-10-25 14:00:00在PHP?转换日期时间与上午下午到24小时日期格式

date('Y-m-d H:i:s', strtotime("10/25/2014 14:00 PM")); 

回报

1970-01-01 03:00:00 
+0

'2014年10月25日14:00 PM'是有效的,因为在'AM/pm'格式只'12 hours'适用 – gvgvgvijayan 2014-11-04 08:42:32

+0

我将如何转换上述m/d/YH:i格式为所需的y/m/d H:i:s格式? – neeraj 2014-11-04 08:43:58

+0

是与am/pm有24小时表示的日期吗? – gvgvgvijayan 2014-11-04 08:45:11

回答

1

我不知道该日期的来源是(它是如何得出这样),但你可以使用DateTime类这样的:

$raw_date = '10/25/2014 14:00 PM'; 
// to disregard that PM escape it in the format 
$new_date = DateTime::createFromFormat('m/d/Y H:i \P\M', $raw_date); 
echo $new_date->format('Y-m-d H:i:s'); // 2014-10-25 14:00:00 
+0

如果'$ raw_date = '10/25/2014 10:00 AM';'或'$ raw_date = '10/25/2014 10:00 ''或'$ raw_date = '10/25/2014 14:00 pm';' – gvgvgvijayan 2014-11-04 10:39:18

1
$date = "10/25/2014 14:00 PM"; //Here is the date 24 hours format with am/pm 
$date = substr($date, 0, -2); //Removed the am/pm from date 


echo date('Y-m-d H:i:s', strtotime($date)); //then convert it to mysql date format 

注: 如果你用这个日期列是指更换的数据类型为int,并保存其中有更舒适,如果一年限于1970年到UNIX时间戳年份2038. 由于原因未使用超过2038 read here

+0

这意味着在php中没有内置函数来实现这一点。我将不得不应用这个黑客? – neeraj 2014-11-04 08:52:38

+0

不是你的格式不是普遍使用的格式,所以没有直接功能 – gvgvgvijayan 2014-11-04 08:54:18

1

10/25/2014 14:00 PM您的输入日期格式不正确,您使用的是12小时格式,因此时间将为10/25/2014 02:00 PM

相关问题