0

嗨,我正在尝试用个位数在天/月的前面添加 0。我尝试使用正则表达式,但它似乎不起作用。有什么我想念的吗?

var newDate = new Date();
            alert(newDate);
            newDate.setDate(newDate.getDate() + 1);
            alert(newDate);
            var year = newDate.getFullYear();
            alert(year);
            var month = (newDate.getMonth()+1).replace(/\b(\d{1})\b/g, '0$1');
            alert(month);
            var day = newDate.getDate().replace(/\b(\d{1})\b/g, '0$1');
alert(day);
4

3 回答 3

0

你在replace这里运行一个数字。

var month = (newDate.getMonth()+1).replace(/\b(\d{1})\b/g, '0$1');
// ...
var day = newDate.getDate().replace(/\b(\d{1})\b/g, '0$1');

您需要在运行替换之前将其转换为字符串。

var month = (newDate.getMonth()+1).toString().replace(/\b(\d{1})\b/g, '0$1');
var day = newDate.getDate().toString().replace(/\b(\d{1})\b/g, '0$1');
于 2013-03-28T10:07:18.793 回答
0

我最好使用这些结构。

var month = (newDate.getMonth()+1).toString();
    month = month.length < 2 ? '0' + month : month;
alert(month);

var day = (newDate.getDate()+1).toString();
    day = day.length < 2 ? '0' + day : day;
alert(day);
于 2013-03-28T10:14:05.687 回答
0

这个怎么样:

var month = "" + (newDate.getMonth()+1);
if (month.length==1) month = "0" + month;
alert(month);
var day = "" + newDate.getDate();
if (day.length == 1) day = "0" + day;
alert(day);
于 2013-03-28T10:15:47.747 回答