将日期时间与AM PM转换为24小时日期格式

时间:2014-11-04 08:39:39

标签: php datetime-format

如何在php中将10/25/2014 14:00 PM转换为2014-10-25 14:00:00

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

返回

1970-01-01 03:00:00

3 个答案:

答案 0 :(得分: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并保存unix时间戳,如果年限限制为1970年到2038年,则会更加舒适。 有理由不使用超过2038 read here

答案 1 :(得分:1)

  

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

答案 2 :(得分: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