【问题标题】:Javascript get current month name and rangeJavascript获取当前月份名称和范围
【发布时间】:2016-05-30 08:01:50
【问题描述】:

JS 中是否有一些功能可以让我获得当前月份的名称?例如,当我想获取日期范围时,我会这样做:

 var startDate = ConvertToNewDateFormat(new Date(date.getFullYear(), date.getMonth(), 0));
    var endDate = ConvertToNewDateFormat(new Date(date.getFullYear(), date.getMonth() + 1, 1));

但是我怎样才能获得当前月份的名称...例如今天是 May,我想以字符串“May”的形式获得它...

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 您或许可以使用toLocaleString。您必须支持哪些浏览器?

标签: javascript jquery date


【解决方案1】:

没有什么内置的1,你必须使用自己的数组:

// Somewhere reusable
var monthNames = [
    "January",
    "February",
    // ...
    "December"
];

// When you need the name
var name = montNames(theDate.getMonth());

...或者使用 MomentJS 或类似的库。 更新:你说你正在使用 MomentJS,所以要获取月份名称,你可以使用format

monthName = moment(theDate).format("MMMM");

或者你可以使用the localization information:

monthName = moment.months()[theDate.getMonth()];

1 对于 月份名称,您通常可以将其与 toString 的结果隔离开来,但这不在规范中,格式因 JavaScript 引擎而异JavaScript 引擎和语言环境之间(有充分的理由!),它们通常是短格式(“Jan”而不是“January”)。但我不会。

【讨论】:

  • 我已经将 momentJS 包含到我的项目中...你能给我看一个 moment 的例子吗?
  • @perkes456:就在the documentation for format 中:MMMM 格式说明符。还有moment.months() 用于获取 Moment 当前语言环境的月份名称数组。
【解决方案2】:

您可以使用Date.prototype.getMonth()根据当地时间获取指定日期的月份,作为从零开始的值(其中零表示一年中的第一个月)

const date = new Date()
const monthsArray = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
const month = monthsArray[date.getMonth()]

console.log(month)

您还可以使用Date.prototype.toLocaleString() 来获取一个字符串,该字符串具有该日期的语言敏感表示,作为第二个参数选项传递{ month: 'long' }

const date = new Date()
const month = date.toLocaleString('default', { month: 'long' })

console.log(month)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多