PHP-计算两个日期之间的星期数

蒂姆

我正在尝试计算两个日期之间的星期数。以下代码的结果为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(一周中的秒数);然后,您可以将floorceil转换为整数值(如果需要):

$HowManyWeeks = (strtotime( '2019-04-21 23:59:00' ) - strtotime( '2019-03-25 00:00:00' )) / 604800;
echo $HowManyWeeks;

输出:

3.9939484126984

3v4l.org上的演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章