2011-12-07 55 views
2

我有一个问题将日期信息传递到另一个站点,因为即使在该月的前九天仍需要两位数的日期。我已经有90%的方式使用SO页面中的代码set select list to current date using Jquery。这使得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

+0

欢迎堆栈溢出;请花些时间阅读[faq](http://stackoverflow.com/faq)。如果某人的回答已回答您的问题,请不要忘记点击其[答案]旁边的复选标记(http://meta.stackexchange.com/a/5235/171243)。 –

回答

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); 
} 
+0

这工作完美。 – kurtismccartney

+0

很高兴帮助。你能把它标记为接受的答案吗? –

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');(可能需要转换)

相关问题