DateTime 만
$beginOfDay = DateTime::createFromFormat('Y-m-d H:i:s', (new DateTime())->setTimestamp($timestamp)->format('Y-m-d 00:00:00'))->getTimestamp();
$endOfDay = DateTime::createFromFormat('Y-m-d H:i:s', (new DateTime())->setTimestamp($timestamp)->format('Y-m-d 23:59:59'))->getTimestamp();
먼저 DateTime 객체가 생성되고 타임 스탬프가 원하는 타임 스탬프로 설정됩니다. 그런 다음 개체는 시간 / 분 / 초를 하루의 시작 또는 끝으로 설정하는 문자열로 형식이 지정됩니다. 마지막으로이 문자열에서 새 DateTime 객체가 생성되고 타임 스탬프가 검색됩니다.
읽기 가능
$dateTimeObject = new DateTime();
$dateTimeObject->setTimestamp($timestamp);
$beginOfDayString = $dateTimeObject->format('Y-m-d 00:00:00');
$beginOfDayObject = DateTime::createFromFormat('Y-m-d H:i:s', $beginOfDayString);
$beginOfDay = $beginOfDayObject->getTimestamp();
이 더 긴 버전을 사용하여 다른 방법으로 하루를 끝낼 수 있습니다.
$endOfDayObject = clone $beginOfDayOject();
$endOfDayObject->add(new DateInterval('P1D'))->sub(new DateInterval('PT1S'));
$endOfDay = $endOfDayOject->getTimestamp();
시간대
시간대는 다음과 같은 형식에 타임 스탬프 표시기를 추가 O
하고 DateTime 개체를 만든 후 타임 스탬프를 지정하여 설정할 수도 있습니다 .
$beginOfDay = DateTime::createFromFormat('Y-m-d H:i:s O', (new DateTime())->setTimezone(new DateTimeZone('America/Los_Angeles'))->setTimestamp($timestamp)->format('Y-m-d 00:00:00 O'))->getTimestamp();
DateTime의 유연성
지정된 두 번째 형식을 변경하여 월의 시작 / 종료 또는 시간의 시작 / 종료와 같은 다른 정보를 얻을 수도 있습니다. 월 : 'Y-m-01 00:00:00'
및 'Y-m-t 23:59:59'
. 시간 : 'Y-m-d H:00:00'
및'Y-m-d H:59:59'
add () / sub () 및 DateInterval 객체와 함께 다양한 형식을 사용하면 모든 기간의 시작 또는 끝을 얻을 수 있지만 윤년을 올바르게 처리하려면 약간의주의가 필요합니다.
관련 링크
PHP 문서에서 :