這是一個非常奇怪的行爲,但我找到了一些解決方案來獲得預期的結果。之所以這麼做是因爲DateTime
對象上缺少一年。
溶液#1(https://3v4l.org/hIA89)
<?php
$datetime = new DateTime('2016-01-01', new DateTimeZone('Europe/Paris'));
var_dump($datetime->modify('first day of april'));
var_dump($datetime->modify('first day of may'));
?>
溶液#2(https://3v4l.org/PDXM3)
<?php
var_dump(new DateTime('first day of april 2016', new DateTimeZone('Europe/Paris')));
var_dump(new DateTime('first day of may 2016', new DateTimeZone('Europe/Paris')));
?>
溶液#3(https://3v4l.org/pBH0n)
<?php
var_dump(new DateTime('1 april', new DateTimeZone('Europe/Paris')));
var_dump(new DateTime('1st april', new DateTimeZone('Europe/Paris')));
var_dump(new DateTime('1 may', new DateTimeZone('Europe/Paris')));
var_dump(new DateTime('1st may', new DateTimeZone('Europe/Paris')));
?>
THX到@Glavic
您選中此項,因爲印度標準時間? – SunUser
這很奇怪:https://3v4l.org/GteBt - 在PHP 5.5.24 - 5.5.33,5.6.8 - 7.0.5它正在工作,但其他版本得到錯誤的日期。 –
你可以做同樣的,並告訴我:http://imgur.com/dI5IvMH –