cakephp 1.2.6을 사용하여 웹 응용 프로그램을 만들고 있습니다. 사용자가 GMT 형식으로 입력 한 시간을 절약하는 데 필요한 기능이 있습니다. 나는 이것을하기 위해 아래의 방법을 사용하고있다. CakePHP의 일광 절약 시간 (DST)
function convertDateTimeToGMT($dateTimeStr,$fromTimeZone, $format = 'Y-m-d H:i:s') {
if (empty($dateTimeStr))
return $dateTimeStr;
else if (empty($fromTimeZone))
return $dateTimeStr;
else {
// Inverse the + or minus. Decimal value should be passed
//$timeHelper = new TimeHelper();
$newTZ = -1 * $fromTimeZone;
return $this->format($format, $dateTimeStr, null, $newTZ) ;
}
}
function format($format = 'd-m-Y', $date, $invalid = false, $userOffset = null) {
$date = $this->fromString($date, $userOffset);
if ($date === false && $invalid !== false) {
return $invalid;
}
return date($format, $date);
}
function fromString($dateString, $userOffset = null) {
if (empty($dateString)) {
return false;
}
if (is_int($dateString) || is_numeric($dateString)) {
$date = intval($dateString);
} else {
$date = strtotime($dateString);
}
if ($userOffset !== null) {
return $this->convert($date, $userOffset);
}
return $date;
}
function convert($serverTime, $userOffset) {
$serverOffset = $this->serverOffset();
$gmtTime = $serverTime - $serverOffset;
$userTime = $gmtTime + $userOffset * (60*60);
return $userTime;
}
convertDateTimeToGMT($dateTimeStr,$fromTimeZone, $format = 'Y-m-d H:i:s')
$fromTimeZone
의 값으로 전달합니다. 그러나 DST 때문에이 변경 될 수 있습니다.
그래서 cakephp에서 최신 표준 시간대 값을 자동으로 찾고 GMT로 변환하는 방법이 있습니까?
오프셋을 충분하지 않습니다. 당신은 그에게 * 시간대를 물어볼 필요가 있습니다. – deceze
사용자는 드롭 다운에서 자신의 시간대를 선택합니다. 그러나 DST로 GMT 시간을 얻으려면 어떻게해야합니까? – Shanaka