加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP查找最接近时间轴周期的日期

发布时间:2020-12-13 17:53:57 所属栏目:PHP教程 来源:网络整理
导读:所以,呃,好的.这可能是数学的,所以希望你随身携带科学计算器;) 这是我的问题: 给定初始日期(时间戳),时间段(秒)和今天的日期(时间戳),我需要找到与周期* n加上原始/初始日期一致的最近日期. 到目前为止,我得到了一些很好的工作,例如初始和最终(今天)日期之
所以,呃,好的.这可能是数学的,所以希望你随身携带科学计算器;)

这是我的问题:

给定初始日期(时间戳),时间段(秒)和今天的日期(时间戳),我需要找到与周期* 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? (我怀疑这是闰年问题?)
当你遗失一些小东西时,你知道那种感觉吗?我现在感觉到它全部……

好吧,如果我明白你在问什么,你想知道在给定时间内会发生的下一个日期(在你的情况下,从1991年4月2日开始,每10年一次,将是下一个日期:2011年4月2日).

所以,你应该深入研究PHP中的DateTime类,它更适合日期使用,因为它更准确.你将它与DateInterval混合,完全符合你的需要:

<?php
$interval = new DateInterval('P10Y'); // 10 years
$initial = new DateTime('1991-04-02');
$now = new DateTime('now');

while ($now->getTimestamp() > $initial->getTimestamp()) {
    $initial = $initial->add($interval);
}

echo $initial->format('d M Y'); // should return April 2,2011 !
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读