【问题标题】:How to convert PHP $datetime to User Local Timezone如何将 PHP $datetime 转换为用户本地时区
【发布时间】:2014-05-21 06:40:47
【问题描述】:

如何在 PHP (servertime) 中转换 $datetime 使用 JS 到用户本地时区?

<span class="datetime"><?php echo $datetime; ?></span>

这可能吗?

【问题讨论】:

  • $datetime 的值是多少。答案取决于它的值。
  • $datetime 是 MySQL 值,例如'2012-06-08 18:00:00'
  • 但答案仍然取决于您的服务器时区。最好将其转换为 unix 纪元时间。
  • @McBabba 你最终解决了问题吗?

标签: javascript php date datetime timezone


【解决方案1】:

您可以使用momentjsmoment timezone

function toTimeZone(time, zone) {
    var format = 'YYYY/MM/DD HH:mm:ss ZZ';
    return moment(time, format).tz(zone).format(format);
}

更多信息:- Convert date to another timezone in JavaScript

【讨论】:

    【解决方案2】:

    这个怎么样。将初始值设置为 unix 时间戳:

    <span class="datetime"><?php echo strtotime($datetime); ?></span>
    

    然后使用 JQuery 将该时间戳替换为本地时区的日期时间:

    $(function() {
      $(".datetime").each(function(idx) {
         var converted = new Date( parseInt($(this).text()) * 1000 );
         $(this).text( converted.toString("ddd MMM d yyyy H:mm:ss") );
      });
    });
    

    【讨论】:

      【解决方案3】:

      最好将 unix 时间戳发送到前端,然后使用 Javascript 将其转换为本地日期。

      【讨论】:

      • 您的建议正是 OP 在他/她的问题中提出的问题。
      • 不,我建议采用一种方法,以便后端和前端轻松进行转换。后端不需要知道前端的时区,可以随时发送unix时间戳,可以很方便的用JS转换。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 2016-06-11
      • 2015-05-27
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      相关资源
      最近更新 更多