PHP转换时间strtotime工作对我不正确

时间:2014-04-16 09:21:46

标签: php date strtotime

我需要转换时间,使用PHP strtotime函数。

时间有以下格式

$date1 = 12:10:00
$date2 = 00:10:00
echo date( 'Y:m:d h:i:s', strtotime( $date1 )); // 12:10:00
echo date( 'Y:m:d h:i:s', strtotime( $date2 )); // 12:10:00

我如何识别是时间00:10或12:10

感谢您的帮助!

6 个答案:

答案 0 :(得分:1)

如果您查看date reference,则小写h是12小时格式化小时。您需要一个大写H

echo date( 'Y:m:d H:i:s', strtotime( $date1 )); // 12:10:00
echo date( 'Y:m:d H:i:s', strtotime( $date2 )); // 00:10:00

FWIW:你的时间变量应该是字符串,带引号。:

$date1 = "12:10:00";
$date2 = "00:10:00";

答案 1 :(得分:1)

您可以使用AM或PM检查差异或使用24小时格式导致0和12相同的平均时间不同是上午或下午

$date1 = '12:10:00';
$date2 = '00:10:00';
echo date( 'Y:m:d h:i:s A', strtotime( $date1 )); // 2014:04:16 12:10:00 PM
echo date( 'Y:m:d h:i:s A', strtotime( $date2 )); // 2014:04:16 12:10:00 AM 

或使用大写H

echo date( 'Y:m:d H:i:s', strtotime( $date1 )); // 12:10:00
echo date( 'Y:m:d H:i:s', strtotime( $date2 )); // 00:10:00

答案 2 :(得分:0)

h“12小时格式的一小时,前导零,01到12”
您想要H,即00到23.请参阅http://php.net/date

答案 3 :(得分:0)

日期格式h为12小时。要区分您可以使用G,也可以使用a添加am或pm。

echo date( 'Y:m:d G:i:s', strtotime( $date1 ));
echo date( 'Y:m:d G:i:s', strtotime( $date2 ));

echo date( 'Y:m:d h:i:s a', strtotime( $date1 ));
echo date( 'Y:m:d h:i:s a', strtotime( $date2 ));

答案 4 :(得分:0)

$date = new DateTime('2000-01-01');
$result = $date->format('Y-m-d H:i:s');

答案 5 :(得分:0)

使用24小时格式!

$date1 = 12:10:00
$date2 = 00:10:00
echo date( 'Y:m:d H:i:s', strtotime( $date1 ));
echo date( 'Y:m:d H:i:s', strtotime( $date2 ));