Javascript 使用Jquery在日期旁边添加随机时间的逻辑

Javascript 使用Jquery在日期旁边添加随机时间的逻辑,javascript,jquery,Javascript,Jquery,我的代码以dd-MMM--YYYY格式返回日期(例如:2014年1月13日)。我想在它旁边添加一个随机时间。类似于:2014年1月13日下午03:00或2014年1月13日凌晨03:00。我可以添加什么来获得所需的输出?谢谢 function randomDate(start, end) { return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime())); } function D

我的代码以dd-MMM--YYYY格式返回日期(例如:2014年1月13日)。我想在它旁边添加一个随机时间。类似于:2014年1月13日下午03:002014年1月13日凌晨03:00。我可以添加什么来获得所需的输出?谢谢

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

function DateAndTimeFormate(date) {
    var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
                     "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    var date = new Date(date);
    return date.getDate() + '-' + monthNames[(date.getMonth() + 1)] + '-' +  date.getFullYear();
}

var datewithformate = DateAndTimeFormate(randomDate(new Date(0000, 0, 0), new Date()));

//Start date
$("#time").val(datewithformate)
你可以查一下-

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

function DateAndTimeFormate(date) {
    var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    var date = new Date(date);
    var hours = date.getHours();
    var t = hours >= 12 ? 'pm' : 'am';
    var hour = (hours % 12).toString().length == 1 ? '0' + (hours % 12) : (hours % 12);
    var minutes = date.getMinutes();
    var minute = minutes.toString().length == 1 ? minutes + '0' : minutes;
    return date.getDate() + '-' + monthNames[(date.getMonth())] + '-' +  date.getFullYear() + ' ' + hour + ':' + minute + ' ' + t;
}

var datewithformate = DateAndTimeFormate(randomDate(new Date(0000, 0, 0), new Date()));

//Start date
$("#time").val(datewithformate)

您可以使用.setSeconds(x)方法添加随机时间,如果x是随机数,则随机数在0的范围内您已经有了生成随机日期时间的方法,这只是格式问题

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

function DateAndTimeFormate(date) {
    var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
        "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    var date = new Date(date);
    // get the time 
    var time = date.toLocaleString('en-US', { hour: 'numeric', hour12: true });
    // to fulfill your requirements some further manipulations
    var ampm = time.slice(-2);
    time = parseInt(time);
    if (time < 10) { time = '0' + time }
    time += ':00 ' + ampm; 
    return date.getDate() + '-' + 
        monthNames[(date.getMonth())] + '-' +  
        date.getFullYear() + ' ' + 
        time; 
}
函数随机日期(开始、结束){
返回新日期(start.getTime()+Math.random()*(end.getTime()-start.getTime());
}
函数日期和时间格式(日期){
var monthNames=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”,
“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var日期=新日期(日期);
//抓紧时间
var time=date.tolocalString('en-US',{hour:'numeric',hour12:true});
//为了满足您的要求,需要进行一些进一步的操作
var ampm=时间片(-2);
时间=parseInt(时间);
如果(时间<10){time='0'+time}
时间+=':00'+安培;
返回日期。getDate()+'-'+
monthNames[(date.getMonth())]+'-'+
date.getFullYear()+“”+
时间
}

.日期设置时间(1332403882588)?感谢您的回复。但你能说得更具体些吗?关于我需要补充的地方?谢谢。但是如何以12小时格式添加AM/PM?@SouvikGhosh代码monthNames[(date.getMonth()+1)]中还有一个错误,它将生成不正确的月份名称和未定义的十二月,因为date.getMonth()以0开头,以11结尾。@axel.michel谢谢。我看到了。我从OP那里拿的。可能是OP的逻辑。谢谢。我们快到了。我只需要在小时前添加一个“0”。示例:如何将时间改为上午8:30或晚上8:30,而不是上午8:30?只需再出现一个错误。对于像凌晨02:30这样的时间,它显示的是凌晨02:3。有什么办法?谢谢。但是你如何在12小时的格式中添加AM/PM呢?我想已经有太多其他的答案了..哈哈:)@axel.michel有一个很好的答案谢谢你的努力。但对我来说,它总是给1970年1月1日凌晨5点。这不是随机化。有什么线索吗?@AnanSrivastava示例链接不起作用?对我来说很好你对那个“未定义”的错误很在行。修复方法是什么?看看代码,monthNames[date.getMonth()]是正确的。示例链接工作正常。但对我来说,在我的代码中,它总是给出1970年1月1日凌晨5点。我们这里缺什么?我去看看那个图书馆。谢谢。使用20k的javascript来设置00:00之类的格式?js对于高级日期操作和计算来说是一个非常有用的库,但是对于编写随机AM/PM来说,它有点太大了。
var date = new Date('13-Jan-2014');
// date = Mon Jan 13 2014 00:00:00 GMT+0700 (SE Asia Standard Time)
var randomSeconds = Math.floor((Math.random() * 86400));
// randomSenconds = 53135
date.setSeconds(randomSenconds)
// date = Mon Jan 13 2014 14:45:35 GMT+0700 (SE Asia Standard Time)
moment().format('MMMM Do YYYY, h:mm:ss a'); // January 13th 2017, 2:17:37 pm
function randomDate(start, end) {
    return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}

function DateAndTimeFormate(date) {
    var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
        "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    var date = new Date(date);
    // get the time 
    var time = date.toLocaleString('en-US', { hour: 'numeric', hour12: true });
    // to fulfill your requirements some further manipulations
    var ampm = time.slice(-2);
    time = parseInt(time);
    if (time < 10) { time = '0' + time }
    time += ':00 ' + ampm; 
    return date.getDate() + '-' + 
        monthNames[(date.getMonth())] + '-' +  
        date.getFullYear() + ' ' + 
        time; 
}