【问题标题】:How to return an hour: minute string, moved by particular offset?如何返回按特定偏移量移动的小时:分钟字符串?
【发布时间】:2020-03-09 06:31:04
【问题描述】:

所以我有一个日期字符串:

const date = '2000-01-01T01:00:00Z';

和偏移量(UTC 给定日期和我的时区之间的分钟差):

const offset = 60;

我想实现这个:

02:00

所以我需要以某种方式将日期中的时间移动特定的分钟数(偏移量)并仅返回 HH:mm 格式的时间。

我尝试使用 moment.js 和纯 JS Date 对象,但问题是当我将 date 放入他们的构造对象时,他们立即将我的本地浏览器时间考虑在内(我想省略)。我该怎么办?

【问题讨论】:

    标签: javascript date datetime time momentjs


    【解决方案1】:

    Moment js 文档(解析)-https://momentjs.com/docs/#/parsing/:

    moment.utc(...) is utc mode. Ambiguous input is assumed to be UTC. Unambiguous input is adjusted to UTC.
    

    应该以 UTC 时间解析您的日期

    然后使用函数add - https://momentjs.com/docs/#/manipulating/

    添加您的分钟数 然后格式化 - https://momentjs.com/docs/#/displaying/

    moment.utc('2000-01-01T01:00:00Z').add(60, 'm').format('h:mm')
    

    【讨论】:

    • 我做了moment.utc(date).add(offset).format('HH:mm'),我实现的是'21:00'。我将本地浏览器时区设置为“GMT-0300(美国蒙得维的亚标准时间)”。
    • 什么是偏移量,什么是日期
    • add 函数参数中添加“m”后(与您编辑的帖子完全一样)我得到了22:00moment.utc('2000-01-01T01:00:00Z').add(60, 'm').format('HH:mm')
    • 显然,我的当地时间('GMT-0300(美国蒙得维的亚标准时间)')仍然被考虑在内。
    • @HubertKubiak 请务必编辑您的问题并添加显示您尝试过的代码,以避免人们回答您已经做过的事情
    猜你喜欢
    • 2012-02-13
    • 1970-01-01
    • 2013-09-29
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多