2014-03-13 3 views
1

나는 간단한 카운트 다운을하려고합니다. date_default_timezone_set($this->session->userdata('timezone'));는이 07 hours, 30 minutes, and 00 seconds곧 strtotime ('내일') - strtotime ('내일') strtotime ('내일') - 시간 (곧) 자정까지 정확한 시간을주지 않을 것입니다

,536을 뱉어해야 America/Phoenix

로 설정된 경우에도 00 hours, 30 minutes, and 00 seconds

을 침됩니다

$time_seconds_view = strtotime('tomorrow') - time(); echo date("H" . " \h\o\u\\r\s\, " . "i" . " \m\i\\n\u\\t\\e\s\, \a\\n\d " . "s" . " \s\\e\c\o\\n\d\s", $time_seconds_view); 

:하지만 그것은 잘못된 시간을주고

PHP가 기본 시간대를 변경했다고 생각하지 않는 것 같습니다.

내가 잘못하고있는 사항이 있습니까? 당신의 도움을 주셔서 감사합니다!

답변

0

날짜 시간을 사용하십시오. 데이트 수학의 경우 훨씬 좋습니다.

$tomorrow = new DateTime('tomorrow'); 
$now = new DateTime(); 
$diff = $tomorrow->diff($now); 
echo $diff->format("%h hours, %i minutes, %s seconds"); 
// 7 hours, 12 minutes, 53 seconds 

See in action

+0

와우, 감사합니다! 공장. 그래도 내 코드에 무슨 문제가 있었습니까? 왜 제대로 작동하지 않는지 혼란 스럽습니다. –

+0

또한 코드 [실제 사용중인 데모]가 나에게서 올바른 시간대를 얻을 수 있었던 방법은 무엇입니까? –

+0

확실하지 않습니다. 그러나 time(), strtotime(), date() 등은 날짜 계산을위한 것이 아니므로 명확하지 않은 이유로 일이 쉬워졌습니다. 다행히도 DateTime()은이 문제를 해결합니다. –