转换为24小时格式,然后转换为时间戳

时间:2015-09-28 14:01:08

标签: php datetime

我的日期时间格式无效。在需要时间的时间戳之后,我需要将12 hour format时间转换为24 hour format。所以我的代码是

$to =  DateTime::createFromFormat('h:i A','1:00 AM');
echo $to->format('d M y H:i').'<br/>'; 
echo $to->getTimestamp();  

我的第二行代码所需的结果是28 Sep 15 1:00 AM的24小时格式,然后是此日期时间的时间戳。我的代码有什么问题?

我的问题是28 Sep 15 1:00 AM的时间戳小于28 Sep 15 8:00 PM的时间戳。但是为什么?

2 个答案:

答案 0 :(得分:2)

https://en.wikipedia.org/wiki/Unix_time

  

...定义为自00:00:00以来经过的秒数   1970年1月1日星期四

-

  

我的问题是9月28日凌晨1点的时间戳小于   时间戳9月28日晚上8点。但是为什么?

作为时间戳&#34;自1970年1月1日星期四00:00:00以来经过的秒数&#34;显然,9月15日上午1:00将始终小于9月28日晚上8:00 PM,就像9月28日00:00 AM 一样小于28 Sep 15 00:00 < EM> PM 的

答案 1 :(得分:0)

在第一行之后添加此行:

$to->modify('+12 hours');

编辑: 我并没有真正得到你所需要的东西,所以你在这里有一些样品:

$am = DateTime::createFromFormat('h:i A','1:00 AM');
echo $am->format('d M y H:i');   // prints '28 Sep 15 01:00'
echo $am->format('d M y h:i A'); // prints '28 Sep 15 01:00 AM'

$pm = DateTime::createFromFormat('h:i A','8:00 PM');
echo $pm->format('d M y H:i');   // prints '28 Sep 15 20:00'
echo $pm->format('d M y h:i A'); // prints '28 Sep 15 08:00 PM'

此处的代码示例:https://3v4l.org/PvAGm