2010-12-07 5 views
3

나는<? php echo date ("H : i : s", 0);?>

<?php 
echo date("H:i:s", $var_time_diff); 
?> 

두 개의 날짜 사이에 시간을 만들었다 .. 내 머리에
$var_time_diff = 36000 = display 10:00:00 for 10 hours이었다.

하지만 사실

<?php echo date("H:i:s", 0);?> 

01:00:00을 표시하고 00:00:00는 표시하지 않습니다.

$date_a = "18:15:04"; 
$date_b = "23:15:04"; 
$diff = strtotime($date_b) - strtotime($date_a); 

$diff은 5 시간이지만

echo date("H:i:s", $diff); 

"06:00:00"입니다.

그래서 내 PHP 구성 또는 PHP 함수 날짜에 대한 일반적인 동작이 잘못 되었습니까?

답변

5

date() 함수는 현재 시간대를 사용합니다. 구성된 시간대를 무시하려면 date_default_timezone_set()을 사용하거나 gmdate()을 사용하십시오.

0

이유가 확실하지 않지만 date이 예에서 현재 시간을 출력하고, 몇 초 후에 타임 스탬프를 작성하면 작동합니다. 나는 더 깊은 설명을 위해이 질문을 따라갈 것이다.

$date_a = "18:15:04"; 
$date_b = "23:15:04"; 
$diff = strtotime($date_b) - strtotime($date_a); 
echo date("H:i:s", mktime(0,0,$diff)); 

편집 : 그것은 현재 시간대로 조정 아, 그래서, 그래서 mktime을한다, 그래서 효과가 무효화된다.

2

UTC가 아닌 다른 시간대에 있습니다.

<?php 
date_default_timezone_set('UTC'); 
echo date("H:i:s",0) . "\n"; 
-1

사용한다 mktime, 그리고 시간 @에 $ diff 명령

에 대한 1 분 : 시도
관련 문제