PHP strtotime() +1 month / -1 month 和预期结果不符
想要使用 PHP 的 strtotime() 方法通过 +1 month / -1 month 获取下个月/上个月的年和月,遇到了和预期结果不符的问题。
观察下面的测试代码的输出结果发现问题原因:
public function actionTestDate()
{$startTime = '20180101'; // string$startTimeStamp = strtotime($startTime); // stamp$endTime = '20180331'; // string$endTimeStamp = strtotime($endTime); // stamp$result = [];for ($i = $startTimeStamp; $i <= $endTimeStamp; $i += 86400) {$iDate = date('Y-m-d H:i:s', $i); // date$iLastMonth = date('Y-m', strtotime('-1 month', $i)); // date$iNextMonth = date('Y-m', strtotime('+1 month', $i)); // date$result[] = $iDate . '----' . $iLastMonth . '----' . $iNextMonth;}return $result;
}
输出结果如下:
public function actionTestDate()
{$startTime = '20180101'; // string$startTimeStamp = strtotime($startTime); // stamp$endTime = '20180331'; // string$endTimeStamp = strtotime($endTime); // stamp$result = [];for ($i = $startTimeStamp; $i <= $endTimeStamp; $i += 86400) {$iDate = date('Y-m-d H:i:s', $i); // date$iFirstDay = date('Y-m-01', $i); // date$iLastMonth = date('Y-m', strtotime('-1 month', strtotime($iFirstDay))); // date$iNextMonth = date('Y-m', strtotime('+1 month', strtotime($iFirstDay))); // date$result[] = $iDate . '----' . $iLastMonth . '----' . $iNextMonth;}return $result;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
