是什么javascript可以将"八月"转换为8?

leo*_*ora 9 javascript date

我需要将Monthname转换为该月的整数(并且希望避免使用大的switch语句).有任何想法吗?

Caf*_*eek 12

只需在该月创建一个日期,解析它,然后getMonth()像这样使用

function convertMonthNameToNumber(monthName) {
    var myDate = new Date(monthName + " 1, 2000");
    var monthDigit = myDate.getMonth();
    return isNaN(monthDigit) ? 0 : (monthDigit + 1);
}

alert(convertMonthNameToNumber("August"));     //returns 8
alert(convertMonthNameToNumber("Augustsss"));  //returns 0 (or whatever you change the default too)
alert(convertMonthNameToNumber("Aug"));        //returns 8 - Bonus!
alert(convertMonthNameToNumber("AuGust"));     //returns 8 - Casing is irrelevant!
Run Code Online (Sandbox Code Playgroud)

  • 值得一提的是*Date.parse()*返回一个表示日期的数字,而不是实际的日期对象.另外*getMonth()*将返回*7*,而不是*8*,因为月份是从零开始的. (3认同)
  • 你打败了我!但实际上,这是错误的:).`Date.parse`返回一个没有getMonth属性的数字.尝试`var myDate = new Date(Date.parse(monthName +"1,2000"))` (3认同)
  • 就个人而言,我本来应该回归'NaN`而不是0.似乎对我更有意义.由于它将一个月转换为name到一个名称,因此返回"NaN"会清楚地表明它无法转换它.以为这只是我挑剔,而不是任何正确的方式. (2认同)