Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 打印正反日期_Php_Mysql_Mysqli_Dateinterval - Fatal编程技术网

Php 打印正反日期

Php 打印正反日期,php,mysql,mysqli,dateinterval,Php,Mysql,Mysqli,Dateinterval,假设我有这个: $date1=date_create(date('H:I', strtotime('8:00'))); $date2=date_create(date('H:I', strtotime('18:00'))); $diff1=date_diff($date1,$date2); echo $diff1->format("%h:%I"); 输出10:00小时,但现在我想比较一下: $date3=date_create(date('H:I', strtotime('8:30')

假设我有这个:

$date1=date_create(date('H:I', strtotime('8:00')));
$date2=date_create(date('H:I', strtotime('18:00')));
$diff1=date_diff($date1,$date2);

echo $diff1->format("%h:%I");
输出10:00小时,但现在我想比较一下:

$date3=date_create(date('H:I', strtotime('8:30')));
$date4=date_create(date('H:I', strtotime('17:45')));
$diff2=date_diff($date3,$date4);

echo $diff2->format("%h:%I");

输出9:15。那么,如果在$diff1和$diff2之间是负数,我怎么能得到diff和符号呢?在这种情况下,我只想得到45分钟的负数。

考虑一下这个问题:

$date5=date_create(date('H:i', strtotime($diff1)));
$date6=date_create(date('H:i', strtotime($diff2)));
$diff3=date_diff($date5,$date6);

echo $diff3->format("Final: %h:%I");
如果差异为负值,您可以使用%r格式化打印:

$diff1 = date_diff(date_create(date('H:i', strtotime('20:00'))), date_create(date('H:i', strtotime('18:00'))));
echo $diff1->format("%r%H:%i"); // prints -02:00

$diff2 = date_diff(date_create(date('H:i', strtotime('8:30'))), date_create(date('H:i', strtotime('17:45'))));
echo $diff2->format("%r%H:%i"); // prints 09:15
更好的版本:

$diff1 = date_diff(DateTime::createFromFormat('H:i', '20:00'), DateTime::createFromFormat('H:i', '18:00'));
echo $diff1->format("%r%H:%i"); // prints -02:00

$diff2 = date_diff(DateTime::createFromFormat('H:i', '8:30'), DateTime::createFromFormat('H:i', '17:45'));
echo $diff2->format("%r%H:%i"); // prints 09:15
阅读更多关于