2013-05-14 72 views
1

我想根据用户浏览器的语言偏好在javascript中显示日期和时间。我以UTC格式接收日期,并使用toLocaleString()我可以将其转换为浏览器时区。但我也需要将日期名称和月份名称转换为浏览器语言。如何根据用户的语言格式化日期和显示月份和日期

对于离

2009/6/15下午1时45分30秒 - >周一,2009年6月15日下午8时45分30秒(EN-US) 2009/6/15 1:45: 30 pm - > den 15 juni 2009 20:45:30(sv-SE) 6/15/2009 1:45:30 PM - >Δευτέρα,15 2009年8:45:30μμ(el-GR)

回答

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活生生的实例,显示所有可用的语言。我不相信目前支持希腊语,但由于它是开源的,你可以随时添加它。

3

使用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" 
相关问题