如何格式化日期并根据用户语言显示月和日

时间:2013-05-14 10:58:38

标签: javascript jquery momentjs

我试图根据用户的浏览器语言偏好在javascript中显示日期和时间。我收到UTC格式的日期,并使用toLocaleString()我能够将其转换为浏览器时区。但我还需要将日期名称和月份名称转换为浏览器语言。

前者

6/15/2009 1:45:30 PM - > 2009年6月15日星期一下午8:45:30(美国) 6/15/2009 1:45:30 PM - > den 15 juni 2009 20:45:30(sv-SE) 6/15/2009 1:45:30 PM - > Δευτέρα,15Ιυνυου20098:45:30μμ(el-GR)

2 个答案:

答案 0 :(得分:6)

使用toLocaleString可以执行此操作:

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// request a weekday along with a long date
var options = {weekday: "long", year: "numeric", month: "long", day: "numeric"};
alert(date.toLocaleString("de-DE", options));
// → "Donnerstag, 20. Dezember 2012"

// an application may want to use UTC and make that visible
options.timeZone = "UTC";
options.timeZoneName = "short";
alert(date.toLocaleString("en-US", options));
// → "Thursday, December 20, 2012, GMT"

答案 1 :(得分:2)

如果您想要无论浏览器的输出是否一致,那么moment.js是个不错的选择。

// set the desired language
moment.lang('sv');

// use one of the localized format strings
var s = moment(yourDate).format('LLLL');

moment.js home page上有实时示例,显示了所有可用的语言。我不相信目前支持希腊语,但由于它是开源的,你可以自己添加它。

相关问题