php dateTime :: createFromFormat在输出格式为g:ma时添加12分钟



我正在尝试将/转换两个24小时次为12小时,但是PHP似乎在输出中添加了12分钟或1分钟,我无法确定原因,尝试时区和系统时间修复后。你能教育我吗?

输入:

<?php $timeSlot = ["10:00","22:00"];
    echo DateTime::createFromFormat('H:i',$timeSlot[0])->format('H:i');
    echo " - ";
    echo DateTime::createFromFormat('H:i',$timeSlot[1])->format('H:i');
    echo " Fine.<br>";
    echo DateTime::createFromFormat('H:i',$timeSlot[0])->format('g:ma');
    echo " - ";
    echo DateTime::createFromFormat('H:i',$timeSlot[1],new DateTimeZone('Australia/Sydney'))->format('g:ma');
    echo " Why 12 extra minutes?<br>";
    echo DateTime::createFromFormat('!H:i',$timeSlot[0])->format('g:ma');
    echo " - ";
    echo DateTime::createFromFormat('!H:i',$timeSlot[1],new DateTimeZone('Australia/Sydney'))->format('g:ma'); 
    echo " Why one extra minute?"; ?>

输出:

10:00 - 22:00 Fine.
10:12am - 10:12pm Why 12 extra minutes?
10:01am - 10:01pm Why one extra minute?

您没有额外的分钟。您正在显示本月的号码(12月12日)。将格式更改为 g:ia

当您进行!H:i时,您将在1970年1月1日设置为Unix时期的一个月,日和年。因此,您在这些设置中看到了一月的01

请参阅此处的表:http://php.net/manual/en/function.date.php

最新更新