是否有内置的 Javascript 函数可以将一个月的文本字符串转换为等值的数字?
Posted
技术标签:
【中文标题】是否有内置的 Javascript 函数可以将一个月的文本字符串转换为等值的数字?【英文标题】:Is there a built in Javascript function to turn the text string of a month into the numerical equivalent? 【发布时间】:2010-09-25 06:52:16 【问题描述】:是否有内置的 javascript 函数可以将月份的文本字符串转换为等值的数字?
例如。 我有月份的名称“十二月”,我想要一个函数返回“12”。
【问题讨论】:
【参考方案1】:您可以在月份名称后附加一些虚拟的日期和年份,然后使用Date 构造函数:
var month = (new Date("December 1, 1970").getMonth() + 1);
【讨论】:
我不确定这是否适用于不同的语言环境。但是,如果开发人员可以对此采取缓和假设,这是一个很好的解决方案。【参考方案2】:开箱即用,本机 JS 不支持此功能。如前所述,您需要考虑区域设置和不同的日期约定。
您有任何可以使用的宽松假设吗?
【讨论】:
【参考方案3】:我推荐 jQuery 的datepicker utility functions。
【讨论】:
只为这个功能安装一个 Javascript 库似乎很愚蠢。它不是内置在 Javascript 中的吗? 我不能肯定地说,但这似乎不太可能,因为必须考虑语言环境。这是开源的,阅读代码看看他们是怎么做的。【参考方案4】:试试这个:
function getMonthNumber(monthName)
// Turn the month name into a parseable date string.
var dateString = "1 " + monthName;
// Parse the date into a numeric value (equivalent to Date.valueOf())
var dateValue = Date.parse(dateString);
// Construct a new JS date object based on the parsed value.
var actualDate = new Date(dateValue);
// Return the month. getMonth() returns 0..11, so we need to add 1
return(actualDate.getMonth() + 1);
【讨论】:
以上是关于是否有内置的 Javascript 函数可以将一个月的文本字符串转换为等值的数字?的主要内容,如果未能解决你的问题,请参考以下文章