[英]Laravel get TimeZone not working
Iam trying to convert UTC
timezone to Singapore Time
我正在尝试将UTC
时区转换为Singapore Time
echo $Date->format('Y-m-d H:i:s');
echo '<br>';
echo with(new Carbon\Carbon($Date->format('Y-m-d H:i:s')))->tz('Asia/Singapore')->format('Y-m-d H:i:s');
exit;
it works fine in Localhost
but in aws server
it displays utc Time
for both...Both server and Localhost is set to UTC
Time.. how do we fix this??它在Localhost
中工作正常,但在aws server
中它显示utc Time
...服务器和 Localhost 都设置为UTC
时间。我们如何解决这个问题?
I assume that $Date
in your case is DateTime
object (or Carbon
object). 我假设$Date
在您的情况下是DateTime
对象(或Carbon
对象)。 You can use PHP setTimeZone()
and DateTimeZone
: 您可以使用PHP setTimeZone()
和DateTimeZone
:
$Date = new DateTime($user->updated_at); // sample DateTime creation - also $Date = $user->updated_at; would work here
echo $Date->format("Y-m-d H:i:s")."<br />";
$Date->setTimezone(new DateTimeZone('Asia/Singapore'));
echo $Date->format("Y-m-d H:i:s")."<br />";
For me it generates: 对我来说,它生成:
2014-09-19 12:06:15
2014-09-19 20:06:15
I assumed that, the $Date
variable you have is a Carbon (By default available in Laravel
) object: 我假设您拥有的$Date
变量是Carbon (默认情况下,在Laravel
可用)对象:
$Date->format('Y-m-d H:i:s');
Now to set the timezone
you may use any one of these: 现在设置timezone
您可以使用以下任何一种:
$Date->timezone = new DateTimeZone('Asia/Singapore');
$Date->timezone = 'Asia/Singapore';
$Date->tz = 'Asia/Singapore';
You may also set it from your app/config/app.php
like: 您也可以从app/config/app.php
例如:
/*
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/
'timezone' => 'Asia/Singapore',
You can set to session like below;您可以像下面这样设置为 session;
Session::put('timezone', 'Your/TimeZone');
Enjoy your Code !享受你的代码!
Try this it will work 试试这个会起作用
$timestamp ='1411205843' //Timestamp which you need to convert
$sourceTimezone = new DateTimeZone('UTC');
$destinationTimezone = new DateTimeZone('Asia/Singapore');
$dt = new DateTime(date('m/d/Y h:i A', $timestamp), $sourceTimezone);
$dt->setTimeZone($destinationTimezone);
echo strtotime($dt->format('m/d/Y h:i A'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.