Javascript 将时间转换为矩时区中的特定时区

Javascript 将时间转换为矩时区中的特定时区,javascript,datetime,react-native,timezone,momentjs,Javascript,Datetime,React Native,Timezone,Momentjs,我有一个日期2018-06-19 09:06:29。它是如何存储在数据库中的。我正在使用时刻时区并调用此函数 function getDateString(t, tz) { return moment() .tz("America/Chicago") .format('l'); } 在这里,我知道我的时区是“美国/芝加哥”,是“UTC-5小时”。我应该在我作为辩论通过的时间前5小时得到时间 在我升级react之前,此功能一直工作正常。有人知道可能是什么问题吗 这些是我当

我有一个日期
2018-06-19 09:06:29
。它是如何存储在数据库中的。我正在使用
时刻时区
并调用此函数

function getDateString(t, tz) {
    return moment()
    .tz("America/Chicago")
    .format('l');
}
在这里,我知道我的
时区是“美国/芝加哥”,是“UTC-5小时”。我应该在我作为辩论通过的时间前5小时得到时间


在我升级react之前,此功能一直工作正常。有人知道可能是什么问题吗

这些是我当前的react设置

"expo": "^27.0.0",
"moment": "^2.22.2",
"react": "16.3.1",
"react-moment": "^0.7.0",
"moment-timezone": "^0.5.17",
"react-native": "https://github.com/expo/react-native/archive/sdk-27.0.0.tar.gz",
"react-native-swipeable": "^0.6.0",
"react-navigation": "1.5.11"

根据我的评论,我不确定到底出了什么问题(以及它过去在你这边是如何工作的),但以下是它对我应该如何工作:

  • 使用日期时间创建一个时刻,指定该时刻表示为utc,使用
    moment.utc()

  • 使用
    moment.tz()

  • 这将产生如下结果:

    function getDateString(t, tz) {
        return moment.utc(t, 'YYYY-MM-DD HH:mm:ss')
        .tz("America/Chicago")
        .format('l');
    }
    

    根据我的评论,我不确定到底出了什么问题(以及它过去在你这边是如何工作的),但以下是它对我应该如何工作:

  • 使用日期时间创建一个时刻,指定该时刻表示为utc,使用
    moment.utc()

  • 使用
    moment.tz()

  • 这将产生如下结果:

    function getDateString(t, tz) {
        return moment.utc(t, 'YYYY-MM-DD HH:mm:ss')
        .tz("America/Chicago")
        .format('l');
    }
    

    “此函数工作得很好”在我看来,此函数与我猜想的日期/时间参数
    t
    没有任何关系。另外,请给出您得到的确切输出,以及您过去得到的输出,对于日期时间作为数据是什么,以及它如何表示为字符串/消息,经常会有一些混淆,在所有花哨的时区和语言环境中,“这个函数工作得很好”在我看来,这个函数对我猜想的日期/时间参数
    t
    没有任何作用。另外,请给出您得到的确切输出,以及您过去得到的输出,对于日期时间作为数据是什么,经常会有一些混淆,以及它是如何表示为字符串/消息的,以及所有花哨的时区和语言环境