PHP DateTime::createFromFormat 当输出格式为 g:ma 时添加 12 分钟
PHP DateTime::createFromFormat adding 12mins when output format is g:ma
我正在尝试 split/convert 两次 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
时,您将月、日和年设置为 Unix 纪元,即 1970 年 1 月 1 日。因此,您会在那些文件中看到一月份的 01
设置。
请在此处查看 table:
http://php.net/manual/en/function.date.php
我正在尝试 split/convert 两次 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
时,您将月、日和年设置为 Unix 纪元,即 1970 年 1 月 1 日。因此,您会在那些文件中看到一月份的 01
设置。
请在此处查看 table: http://php.net/manual/en/function.date.php