时刻时区最初为空从 .guess() 设置为相同时区后,时间增加 1 小时

问题描述

我目前正在实施下拉菜单选择,以便为应用程序选择时区。我决定使用 moment.tz.setDefault() 方法,然后重新渲染依赖于它的相应组件,而不是遍历整个项目并为创建的每个时刻对象设置。 当我第一次启动应用程序时,我从 moment() 获得了正确的时间,但是在选择任何时区后,我的时间总是增加 1 小时以上。然后我在下拉菜单中选择我的实时时区(即欧洲/萨拉热窝)我的时间也增加了 1+ 小时,但是在使用 setDefault() 之后没有字符串(应该将我的时区设置为欧洲/萨拉热窝)后我得到了时间和我机器上的一样。我在设置默认时区之前和之后检查了 moment() 对象。最初时区为空,从菜单中选择后,它绑定到选定的时区,然后在将时区设置为默认时区的切换器切换后,时区再次为空

useEffect(() => {
        if(timezoneToggle === false) {
            setTimezonePicker(false)
            
        } else {
            moment.tz.setDefault() // case when toggler is toggled on
            console.log("Moment from on toggler:")
            console.log(moment())
            appState.setTimeZone(moment.tz.guess())
        }
    },[timezoneToggle]) //eslint-disable-line


function onTimezoneSelect(item: string) {
        console.log(moment())
        setSelectedTimezone(item)
        moment.tz.setDefault(item) // setting default timezone from dropdown menu
        appState.setTimeZone(item)
        console.log(moment())
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...