使用javascript Date()函数获取当前月份的错误

时间:2016-02-02 04:57:58

标签: javascript jquery

我坚持使用日期功能,对DD-DD-YYYY HH:MM::SS显示日期的要求很小。获得单个项目(curdate.getDate() , curdate.getMonth()+1 , curdate.getFullYear()...)的确切结果,但当时警告整个结果,月份值显示“11”的内容2.请任何人帮助我。

var curdate = new Date();
    var todaysDt = curdate.getDate()+ "-" + curdate.getMonth()+1 + "-" + curdate.getFullYear() + " " +curdate.getHours() + ":" + curdate.getMinutes() + ":" + curdate.getSeconds();
    todaysDt = todaysDt.split(/\/|-|\s|:/);
    alert(todaysDt);

Fiddle

3 个答案:

答案 0 :(得分:2)

您必须将1添加到月份编号的子表达式括起来:

var todaysDt = curdate.getDate()+ "-" + (curdate.getMonth()+1) + "-" + curdate.getFullYear() + " " +curdate.getHours() + ":" + curdate.getMinutes() + ":" + curdate.getSeconds();

确保将子表达式(curdate.getMonth()+1) - 评估为数字加法运算。在这些括号之外,您将字符串与+连接起来。这是为什么?如果没有明确的括号来指示评估顺序,则会从左到右评估+个操作链。也就是说,

a + b + c + d + e

被评估为好像被明确标点

(((a + b) + c) + d) + e

因为在JavaScript字符串连接" wins"通过算术加法,在+操作链中左侧的字符串有效地将之后的所有内容转换为字符串连接。

当您引入显式括号时,会强制对该子表达式进行自我评估。由于从.getMonth()返回的月份值和常量1都是数字,因此+将充当数字加法运算符。

答案 1 :(得分:2)

没有括号它连接显示11的1+1,但实际上你需要求和,所以在它们周围使用括号,然后它将执行求和。

var curdate = new Date();
	var todaysDt = curdate.getDate()+ "-" + (curdate.getMonth()+1) + "-" + curdate.getFullYear() + " " +curdate.getHours() + ":" + curdate.getMinutes() + ":" + curdate.getSeconds();
	//todaysDt = todaysDt.split(/\/|-|\s|:/);
    alert(todaysDt);

答案 2 :(得分:0)

希望格式化功能可以帮助你

Date.prototype.format = function(format) {
    var o = {
        "M+": this.getMonth() + 1, //month 
        "d+": this.getDate(), //day 
        "h+": this.getHours(), //hour 
        "m+": this.getMinutes(), //minute 
        "s+": this.getSeconds(), //second 
        "q+": Math.floor((this.getMonth() + 3) / 3), //quarter 
        "S": this.getMilliseconds() //millisecond 
    }

    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }

    for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
}