2016-01-18 68 views
-1

我在不同的服务器上运行两个不同的脚本,我只需要在两台服务器上都得到确切的DateTime。所以我需要为纽约市,无论改变的php.ini时区(我不需要使用php.ini中设置)DateTime TimeZone in php

php script : 
public static function formatMysql($str = 'now') 
    { 
     return date('Y-m-d H:i:s', strtotime($str)); 
    } 
+3

欢迎SO。 请阅读[我可以问哪些主题](http://stackoverflow.com/help/on-topic) 和[如何提出一个好问题](http://stackoverflow.com/help/how-to - 问) 和[完美的问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) – RiggsFolly

回答

0
<?php 
date_default_timezone_set('America/Los_Angeles');//Your global default timeZone. 

function convertTimeZone($oTime, $oTimeZone, $nTimeZone) 
{ 
//Parameter string $oTime is original time to be converted from in format F-d-Y h:i:s 
//Parameter string $oTimeZone is timezone to be conveted from- Timezone of $oTimeZone 
//Parameter string $nTimeZone is timezone to be conveted to 

date_default_timezone_set($oTimeZone); //Change default timezone to old timezone within this function only. 

$originalTime = new DateTime($oTime); 

$originalTime->setTimeZone(new DateTimeZone($nTimeZone)); //Convert to desired TimeZone. 

date_default_timezone_set('America/Los_Angeles') ; //Reset default TimeZone according to your global settings. 

return $originalTime->format('F-d-Y h:i:s A'); //Return converted TimeZone. 
} 

$LATime = convertTimeZone("2011-01-07 19:55:00","America/Chicago", "America/Los_Angeles"); 

echo $LATime; 
+0

我在我的脚本中使用亚马逊排队系统(SQS)在那里写消息..当我使用上面的代码时,消息无法传递给SQS,直到我删除上面的代码 –

相关问题