自1970年1月1日以来,有没有更好的方法来获得天数



我需要一个函数,它返回自1970年1月1日以来的天数,但取决于时区。我写了下面的函数,但想知道是否有更好的方法可以做到这一点(确定gmt偏移量的更好方法是件好事)。

function getDaysSinceUnix($time = null){
    if($time === null){$time = time();}
    $day = 24*60*60;
    $offset = intval(substr(date('O'),0,-2))*60*60;
    return intval(floor(($time+$offset)/$day));
}

如果没有,你会添加什么东西来提高这个函数的稳定性吗?

使用DateTime:

function getDaysSinceUnix( $time = 0, $timeZone = Null )
{
    $time = "@$time";
    $tz = new DateTimeZone( $timeZone ?: date_default_timezone_get() );
    return date_create( $time )->setTimeZone( $tz )->diff( date_create( '1970-01-01', $tz ) )->days;
}

如果没有经过时区,则使用当前时区。

Carbon库几乎是PHP日期/时间工作的黄金标准。

CarbonCarbon::createFromTimestamp(0)->diffInDays();

相关内容

  • 没有找到相关文章

最新更新