是否有内置的 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 函数可以将一个月的文本字符串转换为等值的数字?的主要内容,如果未能解决你的问题,请参考以下文章

JS封闭函数闭包内置对象

Javascript:解码字符串

是否有内置方法可以将字符多次添加到字符串中?

sql server中是不是有可以将数字转换为单词的内置函数

理解javascript中的回调函数(callback)

Kettle中JavaScript内置函数说明