如何在javascript中使用getMonth获取正确的月份

时间:2018-06-08 06:24:07

标签: javascript date

我有这个

let d = new Date("03-08-2018"); //dd-mm-yyyy
console.log(d.getMonth()); // returns 02, I want 07

我的日期是dd-mm-yy。 getMonth()认为我正在使用mm-dd-yy。

如何获得正确的月份和日期。

2 个答案:

答案 0 :(得分:0)

JS日期以0开头给出月份。因此,请尝试以下方法从日期开始获取月份

let d = new Date("03-05-2018"); //dd-mm-yyyy
console.log(d.getMonth()+1);

如果你想要4,那么你应该添加+2(但我不确定你为什么要4)

let d = new Date("03-05-2018"); //dd-mm-yyyy
console.log(d.getMonth()+2);

答案 1 :(得分:0)

您的日期格式不是标准格式,我强烈建议您不要在客户端网络代码上使用此类代码,因为它的行为方式与客户端有关。

编辑(thx RobG):不要使用内置解析器new Date(),这会让你遇到麻烦,具体取决于客户端时区,即使你使用正确的格式,月份似乎是正确的认可。

您必须自己创建一些函数来解析字符串并创建一个手动设置年,月,日的Date对象,这将是安全的方法。

手动解析的示例:



let regex = /^(\d{2})-(\d{2})-(\d{4})$/; // each parsing group is day-month-year
let date = '03-05-2018';

let match = regex.exec(date);
let month = +match[2] - 1; // starting at 0, remove -1 if you want 1-based month number

console.log(month); // returns 4 in this example '03-05-2018'




(当然,如果字符串与正确的格式不匹配,你也应该放一些警卫)