изменение месяцев с PHP DateTime: раскрыть предполагаемое поведение
при работе с классом DateTime PHP, добавление или вычитание месяцев не всегда может дать ожидаемые результаты. Как предупреждает документацию, «остерегайтесь» этих операций, поскольку они не так интуитивны, как они могут показаться.
объясняет предполагаемое поведение
рассмотрим пример, приведенный в документации:
$date = new DateTime('2000-12-31'); $date->modify(' 1 month'); // Move ahead by 1 month echo $date->format('Y-m-d') . "\n"; // Prints 2001-01-31 $date->modify(' 1 month'); // Advance another month echo $date->format('Y-m-d') . "\n"; // Prints 2001-03-03
. Вместо увеличения месяца, как и ожидалось, результатом является скачок до 3 марта. Почему это?
вот что происходит внутри:
]для достижения ожидаемого поведения, где «1 месяц» достигает даты на полное месяц. Опции:
Ручной расчет:
проверить количество дней в следующем месяце и вручную отрегулировать дату.$d = new DateTime('2010-01-31'); $d->modify('first day of next month'); echo $d->format('F'), "\n"; // Correctly prints February
Понимание предполагаемого поведения DateTime Month Modizing Operations имеет решающее значение, чтобы избежать неожиданных результатов. Используя ручной расчет или функцию «Первый день следующего месяца», вы можете достичь желаемой функциональности манипуляции с датой в ваших приложениях PHP. ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3