假设欧洲(英国)区域设置日期格式使用月份和年份的前几天,如下所示:
EEE, dd MMM yyyy
当我在toLocaleTimeString
选项 weekday=short 中使用它时,我得到不一致的响应。日子在月后。
2013 年 9 月 27 日星期五 18:38:30 英国时间
但是,当我使用 weekday=long 时,它将与预期的日期格式一致。
2013 年 9 月 27 日星期五 18:38:30 英国时间
无论是使用短格式还是长格式,我都认为它应该是一致的并且有几个月前的几天。但是,事实并非如此,我不确定这是一种理想的行为还是我遗漏了一些观点?
这是 Chrome V29 中的 JavaScript 代码:
var options = {
hour: "2-digit",
minute: "2-digit",
second: "2-digit",
year: "numeric",
month: "short",
day: "2-digit",
hour12: false,
timeZoneName: "short",
weekday:"short" //"long"
}
var date = new Date("Fri Sep 27 2013 13:38:30 GMT-0400");
options.timeZone = 'America/New_York'
console.log(date.toLocaleDateString("en-us",options))
options.timeZone = 'Europe/London'
console.log(date.toLocaleDateString("en-gb",options))
输出:
工作日=短
美国东部时间2013 年 9 月 27 日星期五 1:38:30 PM
英国时间 2013 年 9 月 27 日星期五 18:38:30
工作日=长
美国东部时间 2013 年 9 月 27 日
星期五下午 1:38:30 英国时间 2013 年 9 月 27 日星期五 18:38:30
预期的:
美国东部时间2013 年 9 月 27 日星期五 1:38:30 PM 2013 年 9 月 27 日
星期五 18:38:30 英国时间