添加日期到日期:解决滚动问题
在 PHP 中,向日期添加日期是常见操作。但是,在添加接近月底的日期时会出现问题,因为结果可能无法反映预期的滚动。
原始代码和问题
提供的代码尝试向日期“2009-09-30 20:24:00”添加一天。不幸的是,结果返回日期“1970-01-01 17:33:29”而不是预期的“2009-10-01 20:24:00”。
解决方案
问题在于 PHP 如何处理日期的字符串表示形式。正确的做法是使用 date_create_from_format 函数生成 DateTime 对象,而不是使用 strtotime 来解析字符串。
改进的代码
<?php $stop_date = '2009-09-30 20:24:00'; $stop_date = date_create_from_format('Y-m-d H:i:s', $stop_date); echo 'date before day adding: ' . $stop_date->format('Y-m-d H:i:s'); $stop_date->modify('+1 day'); echo 'date after adding 1 day: ' . $stop_date->format('Y-m-d H:i:s'); ?>
对于 PHP 5.2.0
对于 PHP 5.2.0 及更高版本,可以使用以下替代语法:
<?php $stop_date = new DateTime('2009-09-30 20:24:00'); echo 'date before day adding: ' . $stop_date->format('Y-m-d H:i:s'); $stop_date->modify('+1 day'); echo 'date after adding 1 day: ' . $stop_date->format('Y-m-d H:i:s'); ?>
此语法直接初始化 DateTime 对象,提供更加面向对象的方法。
以上是如何在 PHP 中正确添加日期并避免翻转问题?的详细内容。更多信息请关注PHP中文网其他相关文章!