php utc时间,PHP将UTC时间转换为本地时间

Am getting a UTC time from my server like the following format, my requirement is to convert the UTC time to local time. So users can see a user friendly time on their browser based on their timezone. Please help me to solve this issue. Thank you

$utc = "2014-05-29T04:54:30.934Z"

I have tried some methods but not working in my case

First

$time = strtotime($utc);

$dateInLocal = date("Y-m-d H:i:s", $time);

echo $dateInLocal;

Second

$time = strtotime($utc .' UTC');

$dateInLocal = date("Y-m-d H:i:s", $time);

echo $dateInLocal;

解决方案

The reason your code isn't working is most likely because your server is in UTC time. So the local time of the server is UTC.

Solution #1

One potential solution is to do the following server side and pass the epoch integer to the browser:

$utc = "2014-05-29T04:54:30.934Z";

$time = strtotime($utc); //returns an integer epoch time: 1401339270

Then use JavaScript to convert the epoch integer to the user's local time (the browser knows the user's timezone).

Solution #2

You can get the browser to send you the user's timezone. Then you can use this information to calculate the date string server side instead of browser side. See more here: https://stackoverflow.com/a/5607444/276949

This will give you the user's offset (-7 hours). You can use this information to set the timezone by looking here: Convert UTC offset to timezone or date

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值