我正在使用库Date.js和Date.parse()方法
当我解析Date.parse('30 / 07/2012')时,我正确的日期是2012年7月30日星期一00:00:00 GMT + 0200(CEST) 但是当我试图解析Date.parse('01 / 08/2012')(日期2天后)我将于2012年1月8日星期一00:00:00 GMT + 0100(CET) 它正在切换日期和月份!
有人知道为什么会这样吗?
我相信这不是问题,不是在Date.js中,而是在JS本身......
答案 0 :(得分:3)
我的猜测是date.js足够聪明,意识到30
不是一个有效的月份,因此它将自己切换为dd / mm / yyyy格式。
默认格式为mm / dd / yyyy,并且它会将01
识别为有效月份(1月),因此它会为您提供1月8日而不是8月1日。
要解决此问题,只需指定您正在使用的格式字符串:
Date.parse('30/07/2012', 'MM/dd/yyyy');
答案 1 :(得分:0)
您的格式可能不对(“mm / dd / yyyy”)而不是(“dd / mm / yyyy”)。
当你使用30个月时,图书馆将其解析为一天,但在下一个案例中,没有任何借口,你将被解析为一个月而不是一天。
答案 2 :(得分:0)
感谢大家的提示。
实际解决方案是使用 Date.parseExact()并指定日期输入。
在这种情况下,它是Date.parseExact('01/08/2012', "d/M/yyyy")