如何在 JavaScript 中将月份名称 10 月转换为 10

how to convert month name october to 10 in javascript

本文关键字:转换 JavaScript      更新时间:2023-09-26

在java脚本中给出一个月,如"十月"

如何将月份转换为数字格式?

例如,输出应为"10"。

我有一个名为 monthName 的变量,它给出的值为"十月",

现在如何将月份名称值转换为10

这有点黑客,但是:

var monthName = "October";
var monthNumber = new Date(monthName + " 1").getMonth() + 1;
console.log(monthNumber); // 10;

如果这是您将对日期进行的唯一工作,也许这是矫枉过正,但您可以使用此刻.js库:

moment("October", "MMM").format("M")

输出:

10

显然,您可以使用变量的名称而不是字符串文字"十月"。

你可以

这样做

function getMonthName() {
    getMonthName.mnths = getMonthName.mnths ||  ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
    return (getMonthName.mnths.indexOf(monthName.toLowerCase()) + 1);
}
console.log(getMonthName("October")); // 10

只需创建一个月份数组,然后将一个月份添加到您要查找的月份的索引中。


此方法比使用 Date 对象要高效得多,因为月份名称数组被缓存并且只执行查找,而不是创建具有不必要属性的全新 Date 对象。

此解决方案比使用 Date 对象快 34%。此解决方案不允许使用诸如Oct之类的术语,并且不关心区域设置,但无论如何,这不是要求的。如果需要它们,请使用Date对象。

此外,这是很好的解决方案之一,因为new Date("October 1").getMonth() + 1将为您提供IE10和11(最新的IE(甚至最新的Mozilla Firefox NaN

该解决方案是跨浏览器兼容的,效率更高,当然也不是解决问题的坏方法。JS 性能