我正在尝试计算两个日期之间的星期数。以下代码的结果为3周。但是,实际上是4周。为什么计算不正确?解决方案是什么?
我很想知道为什么这个特定的代码不能正常工作,但也想知道是否有更好的方法。
我正在运行PHP版本7.2。以下是我使用的代码:
$HowManyWeeks = date( 'W', strtotime( 2019-04-21 23:59:00 ) ) - date( 'W', strtotime( 2019-03-25 00:00:00 ) );
$ HowManyWeeks的值应为4,但显示为3。
另外,当我在https://phpfiddle.org/尝试该代码时,它给出以下错误:
Line : 2 -- syntax error, unexpected '23' (T_LNUMBER), expecting ',' or ')'
但是在我的服务器上运行它时,它显示为“ 3”,没有任何错误。
谢谢,
提姆
您传递的日期strtotime
需要用引号引起来。正确答案的确是3,因为两次之间有3周,6天,23小时59分钟。试试这个:
$HowManyWeeks = date( 'W', strtotime( '2019-04-21 23:59:00' ) ) - date( 'W', strtotime( '2019-03-25 00:00:00' ) );
echo $HowManyWeeks;
正如已经指出的那样,这仅在同年的几周内有效。使用DateTime
@MiroslavGlamuzina答案中的对象更容易,或者您可以将strtotime
差异除以604800(一周中的秒数);然后,您可以将floor
或ceil
转换为整数值(如果需要):
$HowManyWeeks = (strtotime( '2019-04-21 23:59:00' ) - strtotime( '2019-03-25 00:00:00' )) / 604800;
echo $HowManyWeeks;
输出:
3.9939484126984
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句