2014-09-22 2 views
0

워드 프레스에서 유닉스 타임 스탬프로 날짜를 저장하고 있습니다.유닉스 타임 스탬프를 비교할 때의 시간대 계정

그래서 오늘은 1411344000 (2014/22/09)으로 저장됩니다. 기본적으로 오늘 날짜를 UNIX 타임 스탬프로 가져오고 wp_query와 비교할 계획입니다.

date_default_timezone_set('UTC'); 
$date1 = date('Y/m/d'); 
$date2 = strtotime($date1); 

을 그리고 난 내 저장된 타임 스탬프와 비교를 위해 $ DATE2를 사용

나는 이런 식으로 뭔가를하고있는 중이 야. 이것은 PST 인 나의 시간대를 고려하지 않는 것을 제외하고는 대부분의 경우 작동합니다. 따라서 오후 4시 (PST) 전후로 내 모든 날짜 비교가 해제됩니다. 나는이 8 시간의 시간차를 적절하게 설명하는 방법을 잘 모르며 주위에 내 마음을 감싸려고 혼란스러워합니다.

제안 사항?

+0

날짜를'int' 대신에'date'로 저장하십시오. – zerkms

+0

기본 시간대를 UTC가 아닌 시간대로 설정하는 이유는 무엇입니까? –

+0

저장되는 시간 소인은 기원을 기반으로합니다. 기본적으로, 나는 저장된 유닉스 타임 스탬프와 date()를 매치 할 수 있기를 원한다. date()는 오늘 타임 스탬프를 위해 strtotime()에 전달된다. 나는 당신이 수동으로 시간 차이를 빼야 할 필요가 있음을 언급하는 다른 게시물을 읽었지 만 나는 어떻게해야하는지 모르겠다. –

답변

0

UNIX timestamp는 이미 시간을 고유하게 식별합니다. 시간대에 의존하지 않습니다. 따라서 데이터베이스에 UNIX 타임 스탬프가있는 경우 현재 UNIX 타임 스탬프 (time())와 비교하십시오.

원하는대로이 정수만 비교하거나 (예 : 초를 달라는 경우) \DateTime 또는 날짜를 나타내는 문자열을 만들 수 있습니다.

현재 날짜가 저장된 날짜와 일치하는지 확인하려면 날짜를 계산할 시간대를 지정해야합니다.

date_default_timezone_set('UTC'); 
var_dump(date('Y-m-d') === date('Y-m-d', $timestampFromDb)); 
+0

답변 해 주셔서 감사합니다. Wordpress/wp_query에서 일하고 0 시간 0 초로 날짜의 타임 스탬프 인 설정 값을 비교해야합니다. 그래서, 2014 년 9 월 22 일은 1411344000이 될 것입니다. 실제로해야 할 일은 시간대를 참조하는 0 시간과 0 초로 오늘의 시간 기록을 얻는 것입니다. 그런 다음 변수에 저장하십시오. 가능한? –

+0

'$ date = new DateTime ('오늘 00:00', 새로운 DateTimeZone ('UTC')); $ var = $ date-> getTimestamp();'또는'date_default_timezone_set ('UTC'); $ var = strtotime ('오늘 00:00'); ' –

+0

고마워요. 이것은 더 가깝다. 그러나 여전히 시간대를 고려하지 않는 것이 좋습니다. 이유는 확실하지 않습니다. 지금은 5:14 PST입니다. 5PM $ var가 1411344000과 같아지기 전에 내가 원하는 것입니다. 오후 이후에는 내일 값으로 변경됩니다. date_default_timezone을 America/Los_Angeles로 변경하려고 시도했지만 작동하지 않았습니다. 1411369200로 출력합니다. –

관련 문제