
DateTime::modify() 함수는 날짜와 시간을 변경할 때 사용됩니다. 그러나 이 함수는 특정 날짜와 시간을 처리할 수 없는 경우 오류를 발생시킬 수 있습니다.
예를 들어, 3월 31일은 존재하지 않기 때문에 DateTime::modify() 함수는 오류를 발생시킵니다. 이 오류를 검사하고 처리하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$dt = new DateTime('2024-02-29 00:00:00');
try {
$dt->modify('+1 month');
var_dump($dt);
} catch (Exception $e) {
if ($e->getMessage() == 'DateTime cannot represent this date as it is out of range.') {
echo '오류가 발생했습니다. 날짜가 유효하지 않습니다.';
} else {
throw $e;
}
}
또는 try-catch 블록을 사용하여 오류를 처리할 수 있습니다.
#hostingforum.kr
php
$dt = new DateTime('2024-02-29 00:00:00');
try {
$dt->modify('+1 month');
var_dump($dt);
} catch (Exception $e) {
echo '오류가 발생했습니다. 날짜가 유효하지 않습니다.';
}
또한, 날짜를 유효한지 검사할 수 있습니다.
#hostingforum.kr
php
$dt = new DateTime('2024-02-29 00:00:00');
if ($dt->format('t') == 29) { // 29일이면 29일로, 30일이면 28일로, 31일이면 30일로 변경
$dt->modify('+1 month');
var_dump($dt);
} else {
echo '오류가 발생했습니다. 날짜가 유효하지 않습니다.';
}
이러한 방법으로 오류를 검사하고 처리할 수 있습니다.
2025-04-13 10:33