在java脚本中给出了像“十月”这样的月份
如何转换为月份编号格式?
输出应为“10”,例如。
我有一个名为monthName的变量,它将值赋予“october”,
现在如何将monthName值转换为10
答案 0 :(得分:4)
这有点像黑客,但是:
var monthName = "October";
var monthNumber = new Date(monthName + " 1").getMonth() + 1;
console.log(monthNumber); // 10;
答案 1 :(得分:3)
如果这是您将使用日期进行的唯一工作,但是您可以使用moment.js library:
,这可能有点过头了moment("October", "MMM").format("M")
输出:
10
显然,您可以使用变量的名称而不是字符串文字" 10月"。
答案 2 :(得分:1)
你可以这样做
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&amp;中为您提供NaN
。 11(最新的IE)甚至是最新的Mozilla Firefox。
此解决方案兼容跨浏览器,效率更高,当然也不是解决问题的不良方法。 JS Perf