我需要一个函数,它返回自 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;
}
如果未传递时区,则使用当前时区。
关于php - 有没有更好的方法来获取自 1970 年 1 月 1 日以来的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37036482/