Heim  >  Artikel  >  Backend-Entwicklung  >  请教 PHP 中计算离生日还剩下多少天问题?

请教 PHP 中计算离生日还剩下多少天问题?

WBOY
WBOYOriginal
2016-06-06 20:37:342413Durchsuche

如 生日是10-04 那么离他生日应该有200多天的样子 求支招

回复内容:

如 生日是10-04 那么离他生日应该有200多天的样子 求支招

http://php.net/manual/en/datetime.diff.php

<code><?php $datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
</code>

算日期的时候非常忌讳自己去算,因为这是一个很复杂的问题,一天并非总是 24 小时(比如非夏令时向夏令时切换的那一天只有 23 个小时),每个小时也并非就是 3600 秒(UTC 和 GMT 相差超过一秒的时候会添加闰秒),一年也并非总是 365 天(闰年),闰年也并非是四年一次(每个世纪的首年必须能被 400 整除才算)。然后还有不同时区的区别,时区之间并非仅仅是时间相差几个小时那么简单。

所以算时间一定要用专业的库,当然 PHP 自带的这个 DateTime 可能并不能覆盖到所有的情况,不过毕竟是自带的,大多数情况下够用了。

这里有一个非常好的php时间组件:https://github.com/briannesbitt/Carbon

<code>ceil( ( strtotime ("2015-10-04") - strtotime( date("y-m-d") ) )/86400 );
</code>

@王子亭 这个diff我还从来没用过,长见识了

Carbon + 1

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn