2014-07-23 2 views
2

PHP를 사용하여 현지 시간을 얻으려고합니다. 나는 두 개의 서로 다른 버전을 썼다, 그러나 그들은 모두 또 다른 방법에게 잘못된 시간PHP로 현지 시간을 얻는 방법?

date_default_timezone_set('UTC'); 
$now = new DateTime(); 
echo $now->getTimestamp(); 

에게 내가 네 발로 앞서 내 로컬 시간의 시간을 얻을 두 경우 모두

date_default_timezone_set('America/New York'); 
echo strtotime("now")."<br/>";; 
$now = new DateTime(); 
echo $now->getTimestamp(); 

을 제공합니다. 현지 시간을 가져 오는 다른 방법이 있습니까?

+1

'America/New York'이 (가) 현지 시간대입니까? 둘 다 같은 값을 반환합니까? – esqew

+0

@esqew 예 둘 다 같은 시간에 반환합니다. – Alexander

+0

Mysql 또는 JS에서 날짜/시간을 가져 오는 것이 좋습니다. –

답변

14

DateTime::getTimestamp()은 유닉스 타임 스탬프를 반환합니다. 이 번호는 항상 UTC입니다. 원하는 것은 시간대에 따라 날짜 형식을 지정하는 것입니다.

$dt = new DateTime("now", new DateTimeZone('America/New York')); 

echo $dt->format('m/d/Y, H:i:s'); 

또는 필요한 항목에 따라 다른 날짜 형식을 사용하십시오.

또한 모든 날짜 필요에 대해 DateTime 라이브러리를 사용할 수 있습니다. 날짜를 가져올 때마다 서버의 기본 시간대를 변경할 필요가 없습니다.

+0

감사합니다. 다른 질문이 있습니다. 현지 시간을 얻은 후에는 그 시간을 유닉스 시간으로 변환 할 수 있습니까? – Alexander

+0

유닉스 시간을 말할 때 당신은 무엇을 의미합니까? 유닉스 시간에 대해 이야기 할 때, 그것은 타임 스탬프를 의미합니다. 이것은 우리를 처음부터 다시 시작합니다. 1970 년 이래로 초 단위의 시간을 얻습니다. 이것은 UTC입니다. –

+0

echo $ dt-> format ('U'); – PeteAUK

1

자바 스크립트를 사용하려면 클라이언트의 시간 값을 원해야합니다. PHP는 서버에서 평가되고 결과를 클라이언트에 보내는 서버 측 언어입니다. 따라서 PHP 함수를 사용하여 날짜/시간을 가져 오려고하면 클라이언트의 시간대가 아닌 서버에서 날짜를 가져옵니다.

자바 스크립트 함수에서이 작업을 수행 한 다음 디스플레이의 값을 참조 할 수 있습니다.

var thisDateTime = new Date();

+1

+1입니다. 나는 이것이 왜 투표에 실패했는지 완전히 확신하지 못한다. 이것은 사용자에게 현지 시간을 제공하고 Date :: toLocaleString()을 사용하여 데이터 형식을 올바르게 지정할 수있는 좋은 방법입니다. – JMRC

3

단순히 date_default_timezone_set() 함수를 사용하십시오.

<?php 
date_default_timezone_set("Asia/Dhaka"); 
echo date('d-m-Y h:i:s A'); 
?> 

, 그것은 도움이 될 것입니다 감사를 희망 : 다음은 예입니다.

-1

당신이 시간대를 사용하지 않을 경우 당신은 윈도우와 PHP는 명령이 혼합 사용할 수 있습니다 : 아무도 인덱스 키 배열 결과 나 localtime(time(), true);와 함께 PHP에 localtime(time()); 언급하지 않았다 왜 궁금하네요

<?php 
    $D = exec('date /T'); 
    $T = exec('time /T'); 
    $DT = strtotime(str_replace("/","-",$D." ".$T)); 
    echo(date("Y-m-d H:i:s",$DT)); 
?> 
0

을 연관 키 배열 결과.

관련 문제