2012-09-30 3 views
6

날짜/시간을 index.php로 출력하면 echo date('m/d/Y h:i:s a', time());입니다. 맞습니다. 예를 들어 확장 프로그램에서 그 이후의 날짜/시간을 출력하면 예를 들어 정확히 4 시간 후에 꺼집니다. php.ini와 Magento 자체에서 타임 존을 올바르게 설정했기 때문에 원인이 무엇인지 확실하지 않습니다. 버전 1.7.0.2를 실행 중입니다.Magento 잘못된 날짜 및 시간 출력

편집 내가 몇 가지를 배운 있도록

좋아.

는 마 젠토는 항상 기본적으로 당신이 당신의 표적화 시간대를 설정하는 당신이 등 날짜(), 시간()를 사용할 수 없습니다,

line 767: date_default_timezone_set('UTC') 

그래서 응용 프로그램/mage.php에 UTC에 시간대를 설정합니다 관리 -> 시스템 -> 설정/일반 -> 로케일 옵션과 같은 것을 사용 : 난 항상 내 시간대에 맞춰 767를 대체 할 수 있지만 핵심 코드를 수정 좋아하지 않아

$now = Mage::getModel('core/date')->timestamp(time()); 
echo date('m/d/y h:i:s', $now); 

합니다. 밖에 다른 옵션이 있습니까 ???

답변

7

젠토의 바람직한 방법은 젠드 또는 Varien 일시 하나가 this example과 스칼라 값의 객체 대신 사용하는 것을 보인다. 개체를 가져 오면 setTimezone 호출로 다른 비 서버 시간대로 쉽게 변환 할 수 있습니다.

// a more complete example 
$datetime = Zend_Date::now(); 
// admin controls this output through configuration 
$datetime->setLocale(Mage::getStoreConfig(
      Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE)) 
     ->setTimezone(Mage::getStoreConfig(
      Mage_Core_Model_Locale::XML_PATH_DEFAULT_TIMEZONE)); 
echo $datetime->get(Zend_Date::DATETIME_SHORT); 
+0

upvote에이 없습니다 ...... –

4

Magento의 데이터베이스에 날짜를 저장하는 경우 해당 날짜가 UTC인지 확인하십시오. 기본적으로 Magento는 모든 날짜를 UTC로 저장하지만 로컬 표준 시간대로 표시해야합니다.

0

내 경우에는 시간이 예를 들어. system.log뿐만 아니라 스케줄러 (cronjobs).

그럼 지금 01.15 실시간라고하자, 스케줄러의 생성 시간은 항상이 경우 너무 01.15 맞습니다. 실행 된 시간보다 때로는 01.16이지만 종종 02.16이므로 01.16과 02.16의 혼합이 표시되므로 시간이 연속적으로 달라집니다. 나는 시스템 로그를 확인하면

, 내가 먼저 번 다시 01.50, 02.45, 03.50 갑자기 02.55 같은 메시지를 증가 참조, 같은를 참조하십시오.

그래서 시스템에 뭔가가 있습니다. 그러나 이번에는 공급자가 뭔가를 찾을 수는 있지만 시스템 시간이 아닙니다. Magento와 관련이 있습니다 .. Magento가 로그에 기록합니다. .

편집 :

이 문제는 나도 몰라이 왜

,하지만 난 내 영역 유럽/암스테르담 Mage.php의 UTC 시간을 변경했습니다. 이제는 모든 시간이 정확하며 로그에서도 정확합니다. 내가 스케줄러 (확장)에 즉시 cronjob에를 예약 할 때

그러나 한 가지 문제 다시,이 작업이 (스케줄러에서 다른 시간이 올바른지) 이후 1 시간 예정이다. Copernica 확장 프로그램은 예를 들어 18.00 (하지 스케줄러를 통해) 그것을 기록은 17.00에서 마지막으로 실행됩니다 ... 다른 비 젠토의 webshops 데이터베이스는 php.ini의 유럽/암스테르담을 사용하고 있습니다 .. 문제가 이런 종류의 .. 내게