JavaScript添加前导零

我已经创建了这个脚本来计算提前10天的日期,格式为dd / mm / yyyy:

var MyDate = new Date();
var MyDateString = new Date();
MyDate.setDate(MyDate.getDate()+10);
MyDateString = MyDate.getDate() + '/' + (MyDate.getMonth()+1) + '/' + MyDate.getFullYear();

我需要通过将这些规则添加到脚本中,使日期在日期和月份组件中以前导零显示。 我似乎无法得到它的工作。

if (MyDate.getMonth < 10)getMonth = '0' + getMonth;

if (MyDate.getDate <10)get.Date = '0' + getDate;

如果有人能指示我将这些插入脚本的位置,我会非常感激。


试试这个:http://jsfiddle.net/xA5B7/

var MyDate = new Date();
var MyDateString;

MyDate.setDate(MyDate.getDate() + 20);

MyDateString = ('0' + MyDate.getDate()).slice(-2) + '/'
             + ('0' + (MyDate.getMonth()+1)).slice(-2) + '/'
             + MyDate.getFullYear();

编辑:

为了解释, .slice(-2)给出了字符串的最后两个字符。

所以无论如何,我们可以在一天或一个月中添加"0" ,只要求最后两个,因为这些总是我们想要的两个。

所以如果MyDate.getMonth()返回9 ,它将是:

("0" + "9") // Giving us "09"

所以加上.slice(-2)就给了我们最后两个字符:

("0" + "9").slice(-2)
"09"

但是,如果MyDate.getMonth()返回10 ,它将是:

("0" + "10") // Giving us "010"

所以添加.slice(-2)给了我们最后两个字符,或者:

("0" + "10").slice(-2)
"10"

以下是Mozilla开发者网络上使用自定义“pad”函数的Date对象文档的示例,无需扩展Javascript的Number原型。 他们给出的方便功能就是一个例子

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

下面是在上下文中使用它。

/* use a function for the exact format desired... */
function ISODateString(d){
    function pad(n){return n<10 ? '0'+n : n}
    return d.getUTCFullYear()+'-'
    + pad(d.getUTCMonth()+1)+'-'
    + pad(d.getUTCDate())+'T'
    + pad(d.getUTCHours())+':'
    + pad(d.getUTCMinutes())+':'
    + pad(d.getUTCSeconds())+'Z'
}

var d = new Date();
console.log(ISODateString(d)); // prints something like 2009-09-28T19:03:12Z

你可以定义一个“str_pad”函数(如在php中):

function str_pad(n) {
    return String("00" + n).slice(-2);
}
链接地址: http://www.djcxy.com/p/87601.html

上一篇: Javascript add leading zeroes to date

下一篇: Selecting all text in HTML text input when clicked