首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >奇怪的行为格式化moment.js日期

奇怪的行为格式化moment.js日期
EN

Stack Overflow用户
提问于 2016-03-22 13:04:02
回答 4查看 1K关注 0票数 4

我们正在跟踪应用程序中似乎与moment.js格式相关的一个bug。

下面是有问题的调用(在Chrome、FF和Edge中复制,以供参考):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
moment('2016-03-13T23:59:59.999-06:00').format('YYYY-MM-DD')

我们期望的是:

2016-03-13

我们得到的是:

2016-03-14

这似乎与夏令时有关,因为这是我们能够复制这一错误行为的唯一日期(到目前为止),并在那天翻转了DST。

如果我们将UTC偏移量切换到-05:00,那么它就能正常工作。

下面是一个简单的示范 JSBIN

这里发生了什么事?我们怎么解决这个问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-22 18:02:46

如果使用默认的矩构造函数,会将带有偏移量的日期转换为您所在计算机的本地时区。

由于这个原因,您的代码正在按预期工作。日期从-6开始转换为本地偏移量。

如果要使用指定时区偏移量中的日期,请使用moment.parseZone:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
moment.parseZone('2016-03-13T23:59:59.999-06:00').format()
"2016-03-13T23:59:59-06:00"

如果要忽略时区偏移量,并在本地时间工作,请指定不包括偏移量的格式。通过这样做,将使偏移量被忽略。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
moment('2016-03-13T23:59:59.999-06:00', 'YYYY-MM-DDTHH:mm:ss.SSS').format()
"2016-03-13T23:59:59-05:00"

注意,我在UTC-5中,偏移量显示为-5,因为我在日期中忽略了偏移量。

解析指南可能会有一些帮助:http://momentjs.com/guides/#/parsing/

票数 6
EN

Stack Overflow用户

发布于 2016-03-22 13:40:55

有关带时区的解析的文档中,它们显示为了考虑输入字符串中指定的时区,您应该使用moment.parseZone()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
console.log(moment.parseZone('2016-03-13T23:59:59.999-06:00').format('YYYY-MM-DD'));
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js"></script>

上面的输出"2016-03-13“在控制台上为我。

票数 3
EN

Stack Overflow用户

发布于 2016-03-22 13:17:57

您要在编码(-6)上指定时区,但需要依赖客户端时区进行格式化。区别是罪魁祸首。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36165182

复制
相关文章
delete的奇怪行为
F的实例拥有一个value属性,但不希望在new的时候就初始化属性值(因为这个值不一定用得到,而且计算成本比较高,或者new的时候还不一定能算出来),那么自然想到通过定义getter来实现“按需计算”:
ayqy贾杰
2019/06/12
2.4K0
Moment.js日期处理库的使用
Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。这个在一些金融保险公司会经常用到,比如一下时间的格式化处理,时间的选择等等。
孙叫兽
2021/12/20
5.4K0
Moment.js日期处理库的使用
mysql datetime格式化日期(日期格式化)
写sql语句 时发现怎么都查不出来数据,后来发现数据格式化后和前台传入的 数据格式不一样。
全栈程序员站长
2022/07/28
5.2K0
使用moment.js加减日期时间
创建Moment对象后,有时需要对其进行一些加减等操作,Moment中提供了一些方法来完成这些操作。
用户2323866
2021/06/23
8.6K0
日期与日期格式化
**注意:**要想得到当前时间的long date 我们可以用getTime();方法
星哥玩云
2022/09/14
3.7K0
日期与日期格式化
moment.js日期时间管理的常用方法详细教程
js原生获取时间,并对其格式化、计算,并不是那么的简单,moment.js的出现,对日期时间处理就方便了许多许多。
Javanx
2019/09/04
8.1K1
moment.js日期时间管理的常用方法详细教程
Vue学习笔记之moment.js日期处理控件
moment可以方便的计算自然月或者自然年份,避免使用固定天数或者月份计算导致结束日期错乱问题。
Jetpropelledsnake21
2022/11/12
13.2K0
Vue学习笔记之moment.js日期处理控件
SpringMVC日期格式化
在com.fasterxml.jackson.databind.ObjectMapper设置相应属性
全栈程序员站长
2022/09/06
3.8K0
Java日期格式化
文章目录 1. 日期格式化 1.1. 前言 1.2. Date 1.2.1. 构造方法 1.2.2. 常用的方法 1.2.3. 实例 1.3. SimpleDateFormat 1.3.1. 构造方法 1.3.2. 常用的方法 1.3.3. 常用的日期格式化的模板 1.3.4. 实例 1.4. Calendar 1.4.1. 创建对象 1.4.2. 常用方法 1.4.3. 实例 日期格式化 前言 更多文章请看本人博客https://chenjiabing666.github.io/ 版权所有,如需转
爱撒谎的男孩
2019/12/31
2.7K0
python 格式化日期
(1)time.asctime(time.localtime(time.time()))
py3study
2020/01/14
2.1K0
日期格式化java_JAVA格式化时间日期
public static void main(String []args){
全栈程序员站长
2022/07/23
3.5K0
JAVA 日期格式化
最近项目中需要用到SimpleDateFormat 格式化日期,但是因为对日期格式的不熟练多花了十分钟左右的时间在日期格式化上面,所以趁着周末外面下着大雨闲着无聊整理一下日期格式问题。
全栈程序员站长
2022/07/22
3.2K0
JAVA 日期格式化
MySQL日期格式化
%Y:年,4 位 %y:年,2 位 %M:月名 %m:月,数值(00-12) %D:带有英文前缀的月中的天 %d:月的天,数值(00-31) %e:月的天,数值(0-31)
全栈程序员站长
2022/09/06
3.1K0
MySQL 日期格式化[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129082.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/28
5.2K0
MySQL 日期格式化[通俗易懂]
oracle如何格式化日期,Oracle 日期格式化处理汇总[通俗易懂]
2015/04/29 (即返回以’/’分隔符连接的字符串,也可以替换为’^’连接则结果为2015^04^29,也可以替换为’-‘则结果为2015-04-29)
全栈程序员站长
2022/09/05
7.2K0
日期时间的格式化编码
分享一下格式化日期时间用的编码: 字母 描述 示例 G 纪元标记 AD y 四位年份 2001 M 月份 July or 07 d 一个月的日期 10 h A.M./P.M. (1~12)格式小时 12 H 一天中的小时 (0~23) 22 m 分钟数 30 s 秒数 55 S 毫秒数 234 E 星期几 Tuesday D 一年中的日子 360 F 一个月中第几周的周几 2 (second Wed. in July) w 一年中第几周 40 W 一个月中第几周 1 a A.M./P.M. 标记 PM k
阿超
2022/08/21
2K0
vue日期格式化
一、概述 现有vue页面如下: 需要将日期转换为:2020-12-25 二、实现 修改vue html部分,应用方法dateFormat <el-table-column prop="start_ti
py3study
2021/01/07
3.5K0
MySQL日期格式化
UNIX_TIMESTAMP(NOW()) 返回当前时间戳。如:1554866677
冻冻肆
2021/10/05
3.1K0
js日期格式化
js日期格式化 每次遇到日期格式化都要去网上搜一次,这次认真做次笔记。 <html> <head> <script> function test(){ //Js获取当
河岸飞流
2019/09/11
11.4K0
js日期格式化
Flutter中的日期、格式化日期、日期选择器组件在
所谓时间戳,是指自格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
拉维
2019/08/29
26.1K0
Flutter中的日期、格式化日期、日期选择器组件在

相似问题

格式化日期时的奇怪行为

11

Moment.js -添加天数时的奇怪行为

20

格式化日期时moment.js无效日期

14

moment.js中的日期格式,奇怪的日期值

22

奇怪的DateTimePicker格式化行为

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文