我正在使用日期选择器,当我选择要在“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));
答案 0 :(得分:1)
这样的事情:
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"
顺便说一下。由于你的正则表达式没有捕获分钟/秒,你可以删除RegExp。$ 4>如图所示。 如果你需要填充0,那么你可以使用这个辅助函数:
function pad(n){return n<10 ? '0'+n : n}
并将结果更改为:
pad(b.getDate()) +'-'+ pad((b.getMonth()+1))+'-'+b.getFullYear();