格式化momentjs日期时间
Formatting momentjs date-time
大家好,我已经看了一些SO问题,但还没有找到我的问题的确切答案。我已经看过的问题包括:
- Moment.js返回错误日期
- Moment JS-解析UTC并转换为本地,反之亦然
我的问题如下:
我有一个基本的时间选择器,时间从早上4:00到晚上8:00。我想使用选择的时间和硬编码的日期来格式化如下所示的内容:
"2015-05-03T04:00:00"
到目前为止,我拥有的是:
time = moment("2015/05/09 " + filterText, "America/New_York")
console.log(time.format())
其中filterText是select传入的字符串:"4:00AM"
我如何构建一个看起来像"2015-05-09T04:00:00"
的东西?
到目前为止,我得到了以下内容,这还很遥远:"2015-02-27T08:20:00+00:00"
当我删除时区时,我会得到更近的东西,但时间不会改变:
time = moment("2015/05/09 " + filterText)
console.log(time.format())
"2015-05-09T08:00:00-07:00" <--- remains at 7:00 even if filterText is 8:00 or 9:00
您可以使用这个:
time = moment("2015/05/09 " + filterText);
console.log(time.format("YYYY-MM-DDTHH:mm:ss"));
解析时应该指定一个格式字符串:
time = moment("2015-05-09 " + filterText, "YYYY-MM-DD hh:mmA");
console.log(time.format("YYYY-MM-DDTHH:mm:ss"));
从此刻.js文档
警告:浏览器对解析字符串的支持不一致。因为没有关于应该支持哪些格式的规范,所以在某些浏览器中有效的格式在其他浏览器中不起作用。
为了在解析ISO 8601字符串以外的任何字符串时获得一致的结果,您应该使用String+Format。
如果不传递格式字符串,可能会得到正确的结果,也可能不会。您将在控制台日志中看到以下消息:
弃用警告:即时构建回落到js日期。这是不鼓励的,并将在即将发布的主要版本中删除。请参阅https://github.com/moment/moment/issues/1407了解更多信息。
此外,您可能不需要为此通过时区。然而,如果你需要它是特定于时区的,那就错了。moment
函数不需要时区参数。您需要使用即时时区插件,并将其传递给tz
函数,如下所示:
time = moment.tz("2015-05-09 " + filterText, "YYYY-MM-DD hh:mmA", "America/New_York");
console.log(time.format("YYYY-MM-DDTHH:mm:ss"));
相关文章:
- Json数据包含日期和时间格式
- 更改angularjs中的日期-时间格式
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- primefaces日历可以禁用过去的日期和时间吗
- 将日期和时间转换为UTC格式的日期-Javascript
- 时间-日期对象JavaScript getUTCMilliseconds
- 如何在MongoDB中建模和查询办公时间(日期、时区、dst)
- 查找月份在JavaScript循环中出现五次的时间(日期、字符串)
- 在javascript/jquery中解析UTC ISO日期到本地时间日期
- 时间/日期识别与jQuery
- 如何将Twitter API发布时间/日期转换为有效的ISO格式?
- 将当前时间日期放在隐藏字段中
- 只有少于24小时以前的时间日期格式
- 当移动时间/日期滑块太快时,Datetimepicker在breezejs / knockout中产生并发保存错误
- 在任何时间日期选择器中以编程方式设置时区偏移量
- 本地化UTC时间/日期
- 如何使用jquery/javascript转换时间/日期
- 使用javascript显示php时间/日期函数的帮助