如何使下面的代码转换为几小时的天数?
$timestart = date_create('02/11/2011' . $row->timestart); //$row->timestart returns time in 00:00:00 format
$timestop = date_create('02/11/2011' . $row->timestop); //$row->timestop returns time in 00:00:00 format
date_add($timestop, date_interval_create_from_date_string('2 days')); //add 2 days
$date_diff = date_diff($timestart, $timestop);
echo "Timespan: ";
echo $date_diff->format('%h hours');
echo "<br />";
Run Code Online (Sandbox Code Playgroud)
我怎么能hours:minutes:seconds过去的?我正试图继续使用这个date_diff功能.
date_diff()的结果是DateInterval类的对象.这样的对象有一个非常有用的属性 - $days它是起始日期和结束日期之间的总天数.此外,它存储(作为其公共属性)小时,分钟和秒的差异.
所以,我想,你需要的只是从$ date_diff变量中提取这些属性的值,然后添加24*$days到小时数.)所有这些都可以包含在一个简单的函数中:
function hms_date_diff(DateInterval $date_diff) {
$total_days = $date_diff->days;
$hours = $date_diff->h;
if ($total_days !== FALSE) {
$hours += 24 * $total_days;
}
$minutes = $date_diff->i;
$seconds = $date_diff->s;
return sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds);
}
Run Code Online (Sandbox Code Playgroud)
对于DateDiff :: format,文档说......
DateInterval :: format()方法不会重新计算时间字符串中的结转点或日期段.
| 归档时间: |
|
| 查看次数: |
8282 次 |
| 最近记录: |