2

如何在 javascript 中创建此列表:

它从-11到+14。

在此处输入图像描述

var now = new Date();

给我这个: 2013 年 4 月 2 日星期二 20:48:11 GMT+0200(中欧夏令时间)

2013 年 4 月 2 日星期二 20:48:11 GMT+0200 就足够了,但使用完整的日名会更好。然后我仍然需要创建一个列表。我可以在 javascript 中创建一个选择选项,例如

var time = document.getElementById('time'); 
time.options[time.options.length] = new Option(value, text); 
time.options[time.options.length] = new Option(value, text);

所以我现在是其中的一部分,但不能把整个事情放在一起。

4

1 回答 1

1

使用非 UTC 方法时,您无法更改输出日期的本地时区,因此我们需要作弊。相反,我们将创建不同的日期(以 UTC 为单位)并假装它们在我们想要枚举的时区中:

var options = [],
    dayNames = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
    monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

for (var i=-11; i<=14; i++) {
    var d = new Date(); // now
    d.setUTCHours(d.getUTCHours() + i); // translate

    // format:
    var na = dayNames[d.getUTCDay()],
        mo = monthNames[d.getUTCMonth()],
        da = d.getUTCDate(),
        ye = d.getUTCFullYear(),
        ho = ("0"+d.getUTCHours()).slice(-2),
        mi = ("0"+d.getUTCMinutes()).slice(-2),
        of = (i<0?"-":"+")+("0"+Math.abs(i)+"00").slice(-4);
    var text = na+", "+mo+" "+da+", "+ye+" - "+ho+":"+mi+" "+of;
    options.push(new Option(i, text));
}
于 2013-04-02T19:48:49.017 回答