【问题标题】:Creating a date object from a date string and locale从日期字符串和语言环境创建日期对象
【发布时间】:2021-11-07 13:31:02
【问题描述】:

我不确定这是否会是一个重复的问题,因为我在 SO 上找不到任何内容,因此,我将继续回答这个问题 -

我有一个依赖于语言环境的日期字符串,我也有它的语言环境信息。

例如。 dateStr = '06/07/2021'locale='en-GB'

如何从中获取 JS Date 对象? Date 构造函数似乎没有采用语言环境,默认情况下会根据 en-US 语言环境(MM-DD-YYYY)对其进行解析。

我的意思是,上面的 dateStr 将使用 Date 构造函数转换为 7th June 2021 而不是实际的 6 July 2021

更新:
我从d2l-intl 得到了一些东西,但它不起作用。很奇怪。

var parser = new d2lIntl.DateTimeParse('en-GB');
var date = parser.parseDate('23/05/2021');
console.log(
    date.getMonth(),
    date.getDate()
);

这会中断,因为它仍然接受 en-US 格式的日期字符串。

【问题讨论】:

标签: javascript date momentjs locale


【解决方案1】:

查看问题的 cmets,我相信有时人们只是不理解问题并开始指责问题本身。这很荒谬:D

这可能不是解决问题的完美方式(可能会有更简洁和更短的内容),但这绝对有效。

locale = 'en-GB';
value = '07/06/2021';


moment.locale(locale);
const localeData = moment.localeData();
const format = localeData.longDateFormat('L');
console.log(moment(value, format).format('YYYY-MM-DD')); // '2021-06-07'

【讨论】:

    猜你喜欢
    • 2021-01-27
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 2011-09-15
    • 1970-01-01
    • 2012-04-14
    相关资源
    最近更新 更多