【发布时间】:2010-12-22 21:23:03
【问题描述】:
所以,嗯,好的。这可能是数学问题,所以希望你带上你的科学计算器;)
这是我的问题:
给定初始日期(时间戳)、时间段(秒)和今天的日期(时间戳),我需要找到与 period*n 加上原始/初始日期重合的最近日期。
到目前为止,我得到了一些运行良好的东西,例如初始日期和最终(今天)日期之间的“句点”数量,在上面的演示中为“2”:
$initial=strtotime('2 April 1991');
$time=time();
$period=strtotime('+10 years',0);
$periods=round(($time-$initial)/$period);
接下来我做的是:
$range=$periods*$period;
最后:
echo date('d M Y',$initial+$range);
写的是“2011 年 4 月 3 日”。怎么到了3? (我怀疑这是闰年问题?) 当你错过一些小东西时,你知道那种感觉吗?我现在感觉这一切都在我身上......
【问题讨论】:
-
与你不同,我正在测试你的代码,我得到了
01 Apr 2011! -
什么?!也许你应该注意你的诬告。事实上,1991 年 4 月 1 日也是错误的......
-
他们设置的时间段?它们会永远是几年还是动态的?如果您只使用年份,您可以只在年份部分上工作,并且您在家安全。如果你需要用天工作,你会得到这个闰年的问题。
-
诬告?我刚刚运行了您的代码并与您分享了结果。
-
@ncuesta - 我运行(tested)该代码并得到了这些结果,我清楚地说明了这一点。我不只是“发明”那个日期。 @Knubo - 是的,这就是为什么它是 strtotime。将来人们应该将它们混合在一起,例如
+1 year 2 months。