问题标签 [momentjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 数天到今天 moment.js
我有一个函数可以获取到今天为止的天数。但是它可以工作,我正在使用 moment.js 从 JSON 数据中写入和格式化日期,我认为它会导致冲突。有没有办法使用 moment.js 做同样的事情?
这是工作的 JavaScript:http: //jsfiddle.net/infatti/XeqPT/
如何使用 moment.js 完成同样的事情?
如果有兴趣,这就是我如何在它不起作用时拉入日期。
javascript - 将人性化字符串转换为日期 moment.js
Moment.js 做了人性化和日历日期,例如:
它获取当前日期对象并转换为日历日期,并且
有什么办法可以反过来吗?就像我给它一样"Today at 10:17 AM"
,它会返回一个日期对象,其中包含今天的日期和上午 10:17 作为时间?
javascript - Moment JS 解析整个 JSON 数组并格式化多个日期实例
我从 MVC 控制器返回一组 JSON 对象,这些对象有几个我要解析和格式化的日期字段。
我已经用优秀的 Newtonsoft.Json 库替换了默认的 MVC JSON 序列化程序,所以我的日期已经很好地格式化并像这样返回:
我在客户端使用 Moment.js 进行日期处理,我一直在寻找一种简洁的解决方案来进一步格式化这些日期以在 UI 中显示。
我正要开始编写一个自定义函数,它需要一个 JSON 对象数组,其中包含要格式化的日期、一个日期模式和一个要格式化的字段名称数组。
函数签名看起来像:
dataArray 将类似于:
模式将类似于:
字段列表将是(使用上面的示例对象):
我才刚刚开始使用 Moment.js,所以我对它自己的 API 并不是特别熟悉,但是从查看文档来看,没有任何迹象表明它的代码库中已经存在这种功能。
在我开始实施之前,我想知道 Moment.js 中是否已经有一些东西可以为我处理这个问题?或有关如何最好地实现此功能的任何指示?
javascript - 如何根据用户语言格式化日期并显示月份和日期
我正在尝试根据用户浏览器语言偏好在 javascript 中显示日期和时间。我收到 UTC 格式的日期,通过使用 toLocaleString() 我可以将其转换为浏览器时区。但我还需要将日期名称和月份名称转换为浏览器语言。
例如
2009 年 6 月 15 日下午 1:45:30 -> 2009 年 6 月 15 日星期一晚上 8:45:30(美国)2009 年 6 月 15 日下午 1:45:30 -> 2009 年 6 月 15 日 20:45 :30 (sv-SE) 6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR)
javascript - 为什么我的 momentjs 对象上缺少 toJSON()?
我一直得到这种奇怪的效果,就像有时 momentjs 有效,有时却无效。
这是 1.7.2 版,在 node.js 中运行。
问题 1:这不是实例化 momentjs 对象的正确方法吗?
当我将它转储到控制台时,我看到它具有所有典型的矩字段:
问题 2:那么为什么 toJSON() 消失了?
node.js - moment.js 字符串 + 格式未按预期工作
参考 moment.js String + Formats的文档,我希望这两行返回相同的日期对象:
但是,我得到的是第一次约会:
而第二个是正确的:
当我更改数组中格式的顺序时,正好相反,它使用数组中的最后一个格式。
我究竟做错了什么?
我想避免像检查字符串中的“-”或“.”这样的变通方法。
javascript - 有效时间时的 Moment javascript 库和 javascript 日期使用情况
我目前正在编写一个 ASP.NET 应用程序(在 SharePoint 中),它需要对表单中的字段执行验证。我目前正在寻找验证日期和时间的方法,包括比较两个日期时间(小于/大于)和验证格式。
我最初查看了datejs,但自 2007 年以来一直没有更新。根据文档,最后一个版本似乎缺少两个函数 - isAfter 和 isBefore - 所以我将注意力转移到使用moment javascript library。
我目前有一个开始日期、开始时间、结束日期和结束时间文本字段 - 所有这些都是必需的,所以我没有开始日期时间和结束日期时间 - 用户输入输入。我还使用 jQuery Date Picker 和jquery-ui-timepicker-addon来选择日期和时间。
我遇到的一个问题是在时间字段中输入时间时,我可以输入以下内容:
11:90 - 这将调整为 11:59。
11:100 - 没有调整。
这是我将值输入自定义验证 javascript 函数以验证时间的地方。这是使用以下代码完成的:
使用 ASP.NET 代码段:
根据momentjs(如果我删除jQuery Time Picker):
- 11:90 无效。
- 11:100 有效。
我还没有看到任何论坛或对 momentjs 的支持,所以我想我会在这里问。有无数种方法可以验证时间,包括在您自己的自定义验证例程中使用正则表达式 - 但我现在不想重新发明轮子。我想要一个很好的图书馆来做这件事。
只是引用 momentjs 文档进行验证isValid:
mainmoment()
函数非常灵活,在解析输入时会允许溢出。例如,moment("2012-01-40", "YYYY-MM-DD")
将日期值溢出到月份,使实际时刻为 2 月 9 日(1 月 31 天 + 2 月 9 天)。
这在获取一年中的第 150 天或一天中的第 500 分钟时很有用,但是,在尝试解析用户输入时可能会出现问题。
添加了 moment#isValid 以检查片刻的输入是否确实是有效日期。
鉴于该库是 Date 的包装器,我不确定这是javascript问题还是moment - 或者确实是我自己!
有什么想法吗?
javascript - 为什么字符串化的 moment.js 日期在解析时返回不同的值
我有一段时间想存储在本地存储中,并在以后使用isBefore()进行比较。
当我将这一刻字符串化时,它会将其转换为 ISO8601 格式,很好。然而,当我试图通过将它变成一个新的时刻来重新发挥它的作用时,它具有不同的价值。小时被时区转换所抵消。
它是这样的:
moment().hour();
= 21
JSON.stringify(moment());
=“2013-05-20T21:38:31.819Z”`
moment("2013-05-20T21:38:31.819Z").hour();
= 22
显然,这里的问题与 ISO8601 采用 UTC 格式这一事实有关,但无论我如何尝试使用时刻 utc() 函数,它都不会改变下面的基本值不同的事实。
如何将片刻字符串化,然后使用保持不变的值再次解析它?
node.js - moment.js 反向 .fromNow()
所以我正在使用moment.js。
我看到您可以使用 moment().fromNow(); 将日期转换为人类友好的格式;
有没有办法做相反的事情?
例如,我想将这个 --> "2 周前" 转换为正常的日期格式或 UNIX 时间戳。
我筛选了文档,但找不到任何东西。任何方向都会有所帮助,谢谢。
javascript - Moment.js - 如何从日期和时间字符串构建时刻?
如果我给出了日期字符串MM-DD-YYYY
和时间字符串HH:mm A
或者H:m a
,我如何构建一个时刻对象?
我试过moment('MM-DD-YYYY HH:mm A')
了,但没有奏效。