2016-03-02 25 views
1

如何使用JavaScript創建一個隨機UNIX時間戳隨機UNIX時間戳:創建基於的if-else子句

  • 之間現在一天的工作結束時(即今天之間08:00-17 :00) if appointment.status === "today"

  • 明天+ 1星期,但工作日牢記(所以下週可能是週二13:00,牢記工作日即08:00-17:00)如果appointment.status === "pending"

這是我迄今所做的:

if(appointment.status === "today") { 
    appointment.timestamp = (function() { 
    return a 
    })();   
} else if(appointment.status === "pending") {  
    appointment.timestamp = (function() { 
    return a 
    })();     
} 

回答

1

這類似於另一個問題(Generate random date between two dates and times in Javascript),但處理「待定」的約會,你還需要一種方式來獲得一個日期爲明天和明天的周。

該函數將返回在傳遞給它的日期8:00和17:00之間的任意時間戳記:

var randomTimeInWorkday = function(date) { 
    var begin = date; 
    var end = new Date(begin.getTime()); 

    begin.setHours(8,0,0,0); 
    end.setHours(17,0,0,0); 

    return Math.random() * (end.getTime() - begin.getTime()) + begin.getTime(); 
} 

要獲得一個隨機的時間戳今天08:00至17:00之間的今天你可以這樣做:

var today = new Date(); 
var timestamp = randomTimeInWorkday(today); 
console.log(timestamp); // 1457033914204.1597 
console.log(new Date(timestamp)); // Thu Mar 03 2016 14:38:34 GMT-0500 (EST) 

該函數將返回明天,一週之間的隨機日期從明天傳遞給它的日期:

var randomDayStartingTomorrow = function(date) { 
    var begin = new Date(date.getTime() + 24 * 60 * 60 * 1000); 
    var end = new Date(begin.getTime()); 

    end.setDate(end.getDate() + 7); 

    return new Date(Math.random() * (end.getTime() - begin.getTime()) + begin.getTime()); 
} 

要得到明天從明天開始一個星期之間的隨機當天08:00和17:00之間的任意時間戳記,你可以這樣做:

var today = new Date(); 
var randomDay = randomDayStartingTomorrow(today); 
var timestamp = randomTimeInWorkday(randomDay); 
console.log(timestamp); // 1457194668335.3162 
console.log(new Date(timestamp)); // Sat Mar 05 2016 11:17:48 GMT-0500 (EST)