使用前导零将选择列表设置为当前日期和次日

时间:2011-12-07 16:28:15

标签: jquery

我在将日期信息传递到另一个网站时遇到了问题,因为即使是在该月的前九天,它们仍然需要两位数的日期。我已经90%使用了来自set select list to current date using Jquery的SO页面的代码。这会使月份和日期从1-31和1-12移动。我需要输出从01-31和01-12。

目前情况:

function ragequit() {
    var today = new Date();
    var daym = today.getDate();
    var monthm = today.getMonth();
    $('#StartMonth option[value=' + (monthm)  + ']').prop('selected',true);
    $('#StartDay option[value=' + (daym) + ']').prop('selected',true);
    $('#EndMonth option[value=' + (monthm+1)  + ']').prop('selected',true);
    $('#EndDay option[value=' + (daym+1)  + ']').prop('selected',true);
}

这是完美的月份,因为这是12月。还必须为每个值添加m,以便它不会与更改开始日期时增加日期的其他工具竞争。

简单地说,我有12 7 2011 - 我需要12 07 2011

2 个答案:

答案 0 :(得分:0)

你需要的是一个用前导零填充字符串的函数,如下所示:

function pad(num, size) {
    var s = num+"";
    while (s.length < size) s = "0" + s;
    return s;
}

然后您可以使用它将前导零添加到您的日期:

function ragequit() {
    var today = new Date();
    var daym = today.getDate();
    var monthm = today.getMonth();
    $('#StartMonth option[value=' + pad(monthm,2)  + ']').prop('selected',true);
    $('#StartDay option[value=' + pad(daym,2) + ']').prop('selected',true);
    $('#EndMonth option[value=' + pad(monthm+1,2)  + ']').prop('selected',true);
    $('#EndDay option[value=' + pad(daym+1,2)  + ']').prop('selected',true);
}

答案 1 :(得分:0)

在我的javascript工具库中,我有一个字符串的左右填充函数,我从某处获取并一直使用它们。 有这个......
String.prototype.lPad = function (n,c) {var i; var a = this.split(''); for (i = 0; i < n - this.length; i++) {a.unshift (c)}; return a.join('')}

String.prototype.rPad = function (n,c) {var i; var a = this.split(''); for (i = 0; i < n - this.length; i++) {a.push (c)}; return a.join('')}

您现在可以执行alert ('8'.lPad(6,'0'))之类的操作
或者在你的情况下......
var monthm = today.getMonth().lPad(2,'0');(可能需要转换)