Javascript 如何更改日期格式?

Javascript 如何更改日期格式?,javascript,Javascript,我正在使用一个日期选择器,当我选择一个日期时,我希望它以“DD-MM-YYYY”(在我的文本字段中)打印。如果数字小于10,则从日期选择器中选择后,文本字段中显示1或9,而不是01或09。这件事一个月一天都在发生 我正在使用此代码设置日期 var re_date = /^(\d+)\-(\d+)\-(\d+)\s$/; if (!re_date.exec(str_datetime)) return alert("Invalid Datetime format: "+ str_datet

我正在使用一个日期选择器,当我选择一个日期时,我希望它以“DD-MM-YYYY”(在我的文本字段中)打印。如果数字小于10,则从日期选择器中选择后,文本字段中显示1或9,而不是01或09。这件事一个月一天都在发生

我正在使用此代码设置日期

var re_date = /^(\d+)\-(\d+)\-(\d+)\s$/;
if (!re_date.exec(str_datetime))

    return alert("Invalid Datetime format: "+ str_datetime);

return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6));
大概是这样的:

   function d(str_datetime) {
        var re_date = /^(\d+)\-(\d+)\-(\d+)\s$/;
        if (!re_date.exec(str_datetime))

        return alert("Invalid Datetime format: "+ str_datetime);

        return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1));
    }

    var b = d('01-01-2014 ');
    b.getDate() +'-'+ (b.getMonth()+1)+'-'+b.getFullYear();
    // Outputs : "1-1-2014"
顺便说一句。由于您的正则表达式没有捕获分/秒,您可以删除正则表达式。$4>,如下所示。 如果需要填充0,则可以使用此帮助器函数:

function pad(n){return n<10 ? '0'+n : n}

您可以使用
.getDay()
.getMonth()
等提取部分日期。接下来,您可以将这些部分按任意顺序组合成您喜欢的任何stirng。Javascript中没有一个
.format()
方法(或类似方法)可以一次完成这一切。此处列出了日期
上可用的所有方法:我希望输出为2014年1月1日。从日期选择器中选择后。但我得到的是2014年1月1日
pad(b.getDate()) +'-'+ pad((b.getMonth()+1))+'-'+b.getFullYear();