Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从1970年1月1日起,有没有更好的方法来计算天数_Php_Time_Timezone - Fatal编程技术网

Php 从1970年1月1日起,有没有更好的方法来计算天数

Php 从1970年1月1日起,有没有更好的方法来计算天数,php,time,timezone,Php,Time,Timezone,我需要一个函数,返回自1970年1月1日以来的天数,但取决于时区。 我编写了以下函数,但想知道是否有更好的方法来实现它(用更好的方法来确定与gmt的偏移量将是一件好事) 如果没有,您是否可以添加一些东西来提高此功能的稳定性?使用: 如果未传递时区,则使用当前时区。该库几乎是PHP日期/时间工作的黄金标准 Carbon\Carbon::createFromTimestamp(0)->diffInDays(); 实际上,我要借用你的函数来替换我的。@JoseManuelAbarcaRodrí

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

如果没有,您是否可以添加一些东西来提高此功能的稳定性?

使用:

如果未传递时区,则使用当前时区。

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

Carbon\Carbon::createFromTimestamp(0)->diffInDays();

实际上,我要借用你的函数来替换我的。@JoseManuelAbarcaRodríguez ahahahahahaha哦,我很高兴我能帮助你,我从来没有想到有人会使用我的代码:d如果我使用参数
time()+60*60*2
对于您的函数,它返回
16925
,但在我的时区中,它是22:13,因此它应该返回
16926
,因此它是一个小时的休息时间,因为
time()+60*60*3
导致
16926
。你知道为什么会这样吗?你的时区是什么?是的,我的函数的结果与你的不同。您想将实际时区时间与1-1-1970 UTC或1-1-1970 CET(柏林)进行比较吗?我不想进行比较,但我需要根据时区确定正确的天数。好吧,这看起来不错,但我真的不想仅为这一个姿势使用库,但感谢您的选择。@Feirell库倾向于处理所有奇怪的边缘情况,对性能的影响最小,通过Composer安装和管理起来非常容易,正如您所看到的,结果是生成了更干净、更容易理解的代码。最终取决于你。嗯,是的,你是对的,这将是一个好处。但有了图书馆,我什么也学不到(这是一个私人项目),所以我想自己做一个:)
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\Carbon::createFromTimestamp(0)->diffInDays();