我需要一个函数来返回自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));
}
如果没有,您是否会添加一些可以使此功能更稳定的内容?
答案 0 :(得分:2)
使用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;
}
如果没有通过时区,则使用当前时区。
答案 1 :(得分:0)
Carbon库几乎是PHP日期/时间工作的黄金标准。
Carbon\Carbon::createFromTimestamp(0)->diffInDays();