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


convert to 24 hour format then timestamp

我的日期时间格式不工作。我需要将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的时间戳。但是为什么呢?

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

…定义为从00:00:00开始经过的秒数1970年1月1日星期四

,

我的问题是28 Sep 15 1:00 AM的时间戳小于时间戳为9月28日晚8点。但是为什么呢?

作为时间戳"从1970年1月1日星期四00:00:00开始经过的秒数"显然28 Sep 15 1:00 AM将永远小于28 Sep 15 8:00 PM同样,28 Sep 15 00:00 AM将永远小于28 Sep 15 00:00 PM

在第一行之后添加这一行:

$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