> 백엔드 개발 > PHP 튜토리얼 > 1일은 86400초인가요?

1일은 86400초인가요?

WBOY
풀어 주다: 2016-07-30 13:30:15
원래의
3280명이 탐색했습니다.

코드를 작성할 때 날짜 연산이 자주 사용됩니다. 대부분의 경우 편의상 단순히 타임스탬프를 더하고 빼는 것이 가능합니다:

$time = mktime(0, 0, 0, 8, 28, 2015);
$one_hour_later = date('Y-m-d H:i:s', $time + 3600);
로그인 후 복사

이것은 타임스탬프 1시간 후의 코드를 얻는 간단한 방법이지만 확대하면 일 이상의 단위에 이 타임스탬프가 실제로 원하는 것입니까?

예를 들어 특정 날짜의 0시의 타임스탬프가 있고 5일 후의 0시의 타임스탬프를 알고 싶다면 5*86400 뒤에 시간을 추가하면 됩니다.

$time = mktime(0, 0, 0, 3, 8, 2015);
$five_day_later = date('Y-m-d H:i:s', $time + 5 * 86400);
echo $five_day_later; 
로그인 후 복사

>> 2015-03-13 00:00:00

문제 없을 것 같습니다. 하지만 다른 곳에서 이를 실행하는 사람들은 어떻습니까?

// 时区设置为美国芝加哥
date_default_timezone_set('America/Chicago');
$time = mktime(0, 0, 0, 3, 8, 2015);
$five_day_later = date('Y-m-d H:i:s', $time + 5 * 86400);
echo $five_day_later; 
로그인 후 복사
로그인 후 복사

>> 2015-03-13 01:00:00

왜 5일 후 0시가 아니죠?

물론 이 핵심 문제는 일광 절약 시간에 있습니다(일광 절약 시간의 구체적인 원칙은 소개되지 않으며 Baidu에서 직접 확인할 수 있습니다).

해결책: 덧셈과 뺄셈 대신 strtotime 함수를 사용하세요

// 时区设置为美国芝加哥
date_default_timezone_set('America/Chicago');
$time = mktime(0, 0, 0, 3, 8, 2015);
$five_day_later = date('Y-m-d H:i:s', strtotime('+5 days', $time));
echo $five_day_later;
로그인 후 복사
>> 2015-03-13 00:00:00

이 문제는 해당되지 않습니다. 일광 절약 시간은 시간대에 존재하지 않지만 일광 절약 시간이 존재하는 시간대의 경우 예상 결과에 영향을 미칩니다.

저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위에서는 1일이 어떻게 86400초와 같은지 소개합니다. , 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿