1

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

例如

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

4

2 回答 2

7

使用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"
于 2013-05-14T11:03:08.290 回答
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 主页上有实时示例,显示了所有可用的语言。我不相信目前有对希腊语的支持,但由于它是开源的,你总是可以自己添加它。

于 2013-05-14T23:42:41.317 回答