Php 将天数添加到当前日期

Php 将天数添加到当前日期,php,Php,我想在当前日期的基础上增加几天。我使用以下代码 $arrSearchValues=1000; $datToDate = date('Y-m-d', strtotime("+$arrSearchValues days")); 在天数超过9070天之前,一切都很完美。在这个数字之上,我得到的结果日期是“1970-01-01”。有什么方法可以克服这个问题吗?请帮我举个例子试试这个,它应该是最快的方法: $arrSearchValues=time()+1000*24*60*60; $datToDat

我想在当前日期的基础上增加几天。我使用以下代码

$arrSearchValues=1000;

$datToDate = date('Y-m-d', strtotime("+$arrSearchValues days"));

在天数超过9070天之前,一切都很完美。在这个数字之上,我得到的结果日期是“1970-01-01”。有什么方法可以克服这个问题吗?请帮我举个例子试试这个,它应该是最快的方法:

$arrSearchValues=time()+1000*24*60*60;
$datToDate = date('Y-m-d', $arrSearchValues);

对不起,我忘记使用time(),请检查更新的代码。

试试这个,这应该是最快的方法:

$arrSearchValues=time()+1000*24*60*60;
$datToDate = date('Y-m-d', $arrSearchValues);
抱歉,我忘记使用time(),请检查更新的代码。

根据

时间戳的有效范围通常是从1901年12月13日星期五20:45:54 UTC到2038年1月19日星期二03:14:07 UTC。(这些日期对应于32位有符号整数的最小值和最大值。)

9070天后,您的时间戳超出范围,因此您没有获得有效的时间戳,因此出现错误

如果时间戳无效,则可以显示错误

$arrSearchValues = 1000;
if(strtotime("+$arrSearchValues days"))
{
   $datToDate = date('Y-m-d', strtotime("+$arrSearchValues days"));
}
else
{
    echo "Out of range";
}
依照

时间戳的有效范围通常是从1901年12月13日星期五20:45:54 UTC到2038年1月19日星期二03:14:07 UTC。(这些日期对应于32位有符号整数的最小值和最大值。)

9070天后,您的时间戳超出范围,因此您没有获得有效的时间戳,因此出现错误

如果时间戳无效,则可以显示错误

$arrSearchValues = 1000;
if(strtotime("+$arrSearchValues days"))
{
   $datToDate = date('Y-m-d', strtotime("+$arrSearchValues days"));
}
else
{
    echo "Out of range";
}

2038年1月19日是一个特殊的日子:在这一天,基于的32位日期/时间实现表示日期和时间,这就是加法溢出的原因,结果被重置为Unix纪元的开始(1970年1月1日)

要绕过此限制,请切换到使用和朋友:

$d = new DateTime();
$d->modify("+10000 days");
echo $d->format("Y-m-d");

2038年1月19日是一个特殊的日子:在这一天,基于的32位日期/时间实现表示日期和时间,这就是加法溢出的原因,结果被重置为Unix纪元的开始(1970年1月1日)

要绕过此限制,请切换到使用和朋友:

$d = new DateTime();
$d->modify("+10000 days");
echo $d->format("Y-m-d");

@GarethCornish:是的,谢谢@Jon使用DateTime是正确的,但它不会修改时间戳1.我的意思是答案将是错误的。。显示错误不是很好吗?唐斯·乔恩。这对你来说是完美的me@new_developer:
DateTime
工作正常,没有显示错误。@GarethCornish:我知道,谢谢。:)@Jon使用DateTime是正确的,但它不会修改时间戳1.我的意思是答案将是错误的。。显示错误不是很好吗?唐斯·乔恩。这对你来说是完美的me@new_developer:
DateTime
工作正常,没有显示错误。