Javascript 在Momentjs中,如何解析从Java内置服务器发送的日期?
我以列表的形式从服务器获取日期,例如,Javascript 在Momentjs中,如何解析从Java内置服务器发送的日期?,javascript,angularjs,momentjs,Javascript,Angularjs,Momentjs,我以列表的形式从服务器获取日期,例如,[2017,8,24,9,0]。当我在momentjs中对它们进行解析和本地化时,所有日期都提前了一个月:我得到的不是8月,而是9月。在[2017,8,31,9,0]的情况下,我得到了无效日期。我想这是因为9月不是31天 我的问题是如何将诸如[2017,8,24,9,0]、[2017,8,29,20,0]和[2017,8,31,9,0]等日期解析为D.MMM[kl.]H:mm格式 我知道JavaScript-date是zero-indexed,而java-d
[2017,8,24,9,0]
。当我在momentjs
中对它们进行解析和本地化时,所有日期都提前了一个月:我得到的不是8月
,而是9月
。在[2017,8,31,9,0]
的情况下,我得到了无效日期
。我想这是因为9月
不是31天
我的问题是如何将诸如[2017,8,24,9,0]
、[2017,8,29,20,0]
和[2017,8,31,9,0]
等日期解析为D.MMM[kl.]H:mm
格式
我知道JavaScript-date
是zero-indexed
,而java-date不是。我使用了momentjs
subtract()
方法,但是[2017,8,31,9,0]
仍然是无效日期
这是一个javascript问题。但这不是一个错误。在js日期中。它是,0=一月,1=二月,等等。要解决这个问题,你可以用月份减去1
var myServerDate = [2017,8,24,9,0];
myServerDate[1] = myServerDate[1] -1;
然后您可以继续解析过程。JavaScript中的月份是以零为基础的;你必须减去一。Java不是JavaScript。不,我的意思是从数组中的第二个数字开始。也就是说,在你们把它交给那个一刻之前。@jonrsharpe谢谢你们!或者,如果API在您的控制之下,请发送更好的格式,如Unix时间戳或ISO 8601字符串。