随机日期是" yyyy-mm-dd"格式Javascript

时间:2016-09-13 14:41:34

标签: javascript date

我已尝试过这段代码,但它以错误的格式提供了日期:

function randomDate(start, end) {
    return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}

randomDate(new Date(2012, 0, 1), new Date())

返回这样的日期

Fri Dec 16 1988 06:20:22 GMT+0000 (GMT Standard Time)

我如何将其更改为" yyyy-mm-dd"格式?所以例如

1985-09-22

5 个答案:

答案 0 :(得分:3)

尝试使用此代码,这将对您有所帮助。

function randomDate(start, end) {
    var d = new Date(start.getTime() + Math.random() * (end.getTime() -                     start.getTime())),
        month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();

    if (month.length < 2) month = '0' + month;
    if (day.length < 2) day = '0' + day;

    return [year, month, day].join('-');
}

答案 1 :(得分:0)

这里有两个选项:

  • 通过连接日期的特定部分(例如,使用date.getMonth()和类似方法)自行构建日期字符串。
  • 使用指定的库格式化日期,例如。 Moment.js

答案 2 :(得分:0)

使用以下代码:

var date =randomDate(new Date(2012, 0, 1), new Date());
var formattedDate =date.getFullYear()+'-' + (date.getMonth()+1) + '-'+date.getDate();

答案 3 :(得分:0)

如果您不需要通用功能,请将其放在一起

var d = new Date();
alert(
    ("00" + (d.getMonth() + 1)).slice(-2) + "/" + 
    ("00" + d.getDate()).slice(-2) + "/" + 
    d.getFullYear() + " " + 
    ("00" + d.getHours()).slice(-2) + ":" + 
    ("00" + d.getMinutes()).slice(-2) + ":" + 
    ("00" + d.getSeconds()).slice(-2)
);

答案 4 :(得分:0)

您需要将javascript日期对象解析为您需要的格式。你可以这样做:

function randomDate(start, end) {
    return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime())).toISOString().slice(0,10);
}

randomDate(new Date(2012, 0, 1), new Date())