use*_*486 2 javascript datetime date date-formatting
我在 javascript 中有这个日期变量$scope.dt,内容是Tue Jul 08 2014 00:00:00 GMT+0800 (Malay Peninsula Standard Time). 我想将其转换为返回一个字符串2014-7-8(YYYY-MM-DD)。
下面是我写的函数;
function convertDate_YYYYMMDD(d)
{
var curr_date = d.getDate();
var curr_month = d.getMonth()+1; //why need to add one?
var curr_year = d.getFullYear();
return (curr_year + "-" + curr_month + "-" + curr_date );
}
Run Code Online (Sandbox Code Playgroud)
效果很好。我不明白的是为什么我需要加1才能得到正确的结果curr_month?如果我不这样做,这个月总是会少一月。该代码有效,但我不知道为什么它有效。
有人可以建议吗?
这是 C 的遗产。时间戳中的月份是从零开始的。
getMonth 返回的值是 0 到 11 之间的整数。0 对应一月,1 对应二月,依此类推。
int tm_mon month of year [0,11]
为什么在许多编程语言中月份都从零开始,请参见此处:基于零的月份编号。释义:使用一月== 0在古代很有用,但现在我们仍然坚持使用它。