我有一个字符串进入函数,此字符串是来自瑞典的日期,格式为2016 maj 01
。传入此函数的是区域设置sv-se
的国家/地区代码。我需要将日期字符串转换为有效的日期对象,然后我可以应用语言环境。
这适用于全球日期验证。
我到目前为止
var date = new Date();
Intl.dateTimeFormat(locale, options).format(date);
我希望能够拥有new Date("2016 maj 01")
但是因为这不是英语,所以这是一个无效的日期。我可以使用语言环境将其转换为有效的日期对象吗?
有人认为我的问题与另一个问题相似。我的问题不同的方式是,我将月份作为月份缩写名称进入。如果月份以数字显示,则这不是问题
答案 0 :(得分:1)
正如我评论的那样,它可能与现有问题重复。无法从本地化字符串构建JavaScript Date对象。
但是,您要从瑞典语制作自己的日期构建器:
Date.fromSwedish = (function() {
var months = {
'jan': 0,
'feb': 1,
'mar': 2,
'apr': 3,
'maj': 4 /*...*/
};
return function(s) {
var splitted = s.split(' ');
var year = splitted.length > 0 ? splitted[0] : 1970;
var month = splitted.length > 1 ? months[splitted[1].toLowerCase()] : 0 ;
var day = splitted.length > 2 ? splitted[2] : 1;
return new Date(year, month, day);
};
}());
document.write(Date.fromSwedish("2016") + "<br/>");
document.write(Date.fromSwedish("2016 feb") + "<br/>");
document.write(Date.fromSwedish("2016 maj 01") + "<br/>");
答案 1 :(得分:0)