今天是2016年5月7日星期六 但是当我实现js练习时,getDay()总是返回正确的数字加一。所以我做了这个测试。
今天是星期六,所以我希望返回5而不是6。
答案 0 :(得分:2)
答案 1 :(得分:0)
星期几:
var d = new Date(2016, 5, 20); // June 20, 2016
d.getDay();
从0(星期日)开始计数,1表示星期一等...
@Mike C:
0 星期日
1 星期一
2 星期二
3 星期三
4 周四
5 星期五
6 周六
月份也会出现同样的情况。 getMonth()返回的值是0到11之间的整数.0对应于1月,1到2月,依此类推。
0 1月
1 二月
2 3月
3 4月
4 可能
5 六月
6 7月
7 8月
8 九月
9 10月
10 11月
11 12月
var d = new Date(2016, 5, 20); // June 20, 2016
d.getMonth(); // 5
<强>为什么吗
假设为@ChristopherW,这有助于引用一系列名称。
var
months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var d = new Date(2016, 5, 20); // June 20, 2016
months[d.getMonth()]; // "June"
days[d.getDay()]; // "Monday"
对开发人员来说非常方便。但零索引还有另一个原因。 JavaScript的语法实际上源于C.让我们分析C的localtime函数。
C库函数struct tm * localtime(const time_t * timer)使用 计时器指向的时间用值填充tm结构 代表相应的当地时间。计时器的值被破坏了 进入结构tm并在当地时区表示。
struct tm *localtime(const time_t *timer)
此函数返回指向带有时间的tm结构的指针 填写的信息。以下是tm结构信息:
struct tm { int tm_sec; /* seconds, range 0 to 59 */ int tm_min; /* minutes, range 0 to 59 */ int tm_hour; /* hours, range 0 to 23 */ int tm_mday; /* day of the month, range 1 to 31 */ int tm_mon; /* month, range 0 to 11 */ int tm_year; /* The number of years since 1900 */ int tm_wday; /* day of the week, range 0 to 6 */ int tm_yday; /* day in the year, range 0 to 365 */ int tm_isdst; /* daylight saving time */ };
当你看到月份从0到11开始时,星期几从0到6。