首页 > 解决方案 > 获取本地时区并将数据库时间转换为它

问题描述

我在前端显示时间,存储在 DB 中的时间采用 CST 形式 Example 23:35:00 。我使用下面的 PHP 代码显示它:

$formatedEventTime = "--";
 if($eventTime != ''){
 $formatedEventTime = date('h:i A', strtotime($eventTime));
}
//displays 11:35 PM

现在我需要为在纽约或旧金山观看它的人们获取当地时间,并在他们当地的 TimeZone 中显示他们的时间我不确定什么是最好的方法,因为我可以使用:

var d = new Date();
var n = d.getTimezoneOffset();
var timezone = n / -60;
console.log(timezone); 

然后我需要将其转换为小时并根据响应执行加法/减法。有更好的方法吗?

<script> var localTimeZone = moment.tz.guess();
    //  console.log(localTimeZone);
  </script>
//as per comments I am using momentJS

我可以打印像 America/Chicago 这样的 Local timeZone 我如何在我的 PHP 中使用它并根据它显示时间?

标签: javascriptphpjquerydatetime

解决方案


JS 以 UTC 格式保存日期,并将其显示为适合用户设备上的时区。因此,一种方法是使用 epoch 中的 ms 中的 eventTime 实例化它(new Date($eventTime)).toLocaleString()(伪代码)。

对于任何加法/减法等,我推荐moment.js


推荐阅读