javascript - 与 moment.js 相同吗?

标签 javascript momentjs

有没有办法用 moment.js 检查两个日期是否具有相同的子午线(上午/下午)?

在文档中 isSame函数提供了测试日、月等的示例,但没有提供测试子午线的示例。

最佳答案

没有内置任何东西来进行精确比较,但您可以将两个时刻格式化为子午标记 (a) 并比较结果。

moment().format('a') === moment('2016-01-01T11:00').format('a')

这具有实际可用于任何语言环境的优点。在某些地区,它们有更多的子午线指示器,而不仅仅是 AM/PM。以阿塞拜疆语为例:

moment.locale('az')

moment('2016-01-01T02:00:00').format('hh a')
"02 gecə"

moment('2016-01-01T05:00:00').format('hh a')
"05 səhər"

moment('2016-01-01T13:00:00').format('hh a')
"01 gündüz"

moment('2016-01-01T18:00:00').format('hh a')
"06 axşam"

在源代码中,我还看到了白俄罗斯语、孟加拉语、藏语的情况,这样的例子不胜枚举。

如果您想要完整列表,请转到 Moment 源代码中的 locales 文件夹: https://github.com/moment/moment/tree/develop/src/locale

在每个语言环境中,您都会看到子午线函数。这定义了您获得该 token 的行为。

如果您不希望出现这种行为,并且希望代码始终只在“中午之前”或“中午之后”运行,您可以随时将当前的克隆快速翻转回默认区域设置:

moment('2016-01-01T18:00:00').clone().locale('en').format('a')

关于javascript - 与 moment.js 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36365867/

相关文章:

javascript - Moment.js : Get day relevant to today (i. e。 "Tomorrow, today, yesterday, etc")

javascript - 计算到今天的天数 moment.js

javascript - 仅使用 4 个标准中的 3 个标准的正则表达式

javascript - 是否可以为多个实例重用 flatpickr Pane 的 DOM?

javascript - 文件名的正则表达式字符串模式

javascript - 无法识别 JS 服务器,继续构建

javascript - 日期转换为本地日期时间

Javascript 没有在 Date() 构造函数中正确使用一天

javascript - 如何使用 MomentJS 格式化我的日期

javascript - Dojo MD5 散列不是以 base 16 表示法