gpt4 book ai didi

javascript - 使用 Javascript 将 mysql UTC_TIMESTAMP 转换为 CST 和 MST

转载 作者:行者123 更新时间:2023-11-29 09:48:14 24 4
gpt4 key购买 nike

我进行了无休止的搜索,但找不到适合我的解决方案。我将记录存储在 mysql 数据库中,该数据库记录创建它的 UTC 时间 (UTC_TIMESTAMP())。我需要在用户本地时间(使用 JavaScript)向用户呈现数据。我已尝试以下方法但不起作用:

JavaScript:

function localizeDateStr(dateToConvert,divId){
newDate = new Date(dateToConvert);
document.getElementById(divId).innerHTML = newDate.toString();
}

HTML:

<div id="<?php echo $divId ?>" class="td-short"></div>
<script type="text/javascript">window.onload = localizeDateStr('<?php echo $entryTime;?>','<?php echo $divId;?>');</script>

存储在数据库中的 UTC 日期与显示的日期相同。我没有看到转换后的日期。任何帮助,将不胜感激。请指教。

最佳答案

通过Date构造函数(或通过Date.parse)解析字符串对输入字符串的格式非常敏感。根据您在注释 '2019-03-20 17:43:53' 中给出的值,大多数实现将根据本地时间解释该值>。然而,the specification不需要遵守这一点,因为它只描述了一种非常特殊的格式。其他任何内容都取决于实现。

假设您的字符串始终采用此格式,并且您希望将其解释为 UTC,您的选项是:

  • 调整字符串以在日期和时间部分之间包含 T 分隔符,并以 Z 结尾以指示 UTC。

    var newDate = new Date(dateToConvert.replace(' ','T') + 'Z');
  • 自己解析字符串:

    var parts = dateToConvert.split(/[-: ]/g).map((x) => parseInt(x));
    parts[1]--; // Months are 0-11, so adjust
    var newDate = new Date(Date.UTC(...parts));
  • 使用类似 Luxon 的库:

    var dt = luxon.DateTime.fromFormat(dateToConvert,
    'yyyy-MM-dd HH:mm:ss', { zone: 'UTC' });
    var newDate = dt.toJSDate();

    Moment :

    var newDate = moment.utc(dateToConvert).toDate();

关于javascript - 使用 Javascript 将 mysql UTC_TIMESTAMP 转换为 CST 和 MST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55288121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com