计算自时间戳以来的天数?

2 php

这个适用于格式:0000-00-00的日期

但我需要一个unix时间戳格式的函数

function dateDiff($start, $end) {

    $start_ts = strtotime($start);

    $end_ts = strtotime($end);

    $diff = $end_ts - $start_ts;

    return round($diff / 86400);

}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助兄弟吗?

Pas*_*TIN 9

您可以直接接收这些时间戳作为参数,而不是计算作为参数接收的两个日期的时间戳; 即,只需删除对strtotime的调用.

我认为这样的事情可以解决问题:

function dateDiffTs($start_ts, $end_ts) {
    $diff = $end_ts - $start_ts;
    return round($diff / 86400);
}
Run Code Online (Sandbox Code Playgroud)

毕竟,strotime可以获得与日期相对应的时间戳;-)


例如,这个:

var_dump(dateDiffTs(1251151200, 1251410400));
Run Code Online (Sandbox Code Playgroud)

给你3天(1251151200是2009-08-25,而1251410400是2009-08-28).

如果您在时间戳中也有几个小时,这也适用:

var_dump(dateDiffTs(1251196200, 1251443700));
Run Code Online (Sandbox Code Playgroud)

给你3天(1251196200是2009-08-25 12:30:00和1251443700是2009-08-28 09:15:00).

  • 这不完全正确,因为DST考虑因素会使某些日子长达23/25小时 (2认同)