2017-04-07 109 views
0

我有以下腳本,使用時允許用戶查看未來日期,但不包括週末。但我遇到的問題是,如果當天是星期五,我將未來日期設置爲3天,它將週六和週日計爲工作日。我真的很希望你們中的一個人能夠幫助,因爲我在Javascript方面並不擅長。未來日期計算器

正確的例子是:如果今天=星期五,那麼從現在開始的3個工作日將是星期三(而不是星期一,因爲腳本目前正在計算它)。

任何想法?

  var myDelayInDays = 3; 
      myDate=new Date(); 
      myDate.setDate(myDate.getDate()+myDelayInDays); 

      if(myDate.getDay() == 0){//Sunday 
      myDate.setDate(myDate.getDate() + 2);//Tuesday 
      } else if(myDate.getDay() == 6){//Saturday 
      myDate.setDate(myDate.getDate() + 2);//Monday 
      } 

      document.write('' + myDate.toLocaleDateString('en-GB')); 

任何幫助真的很棒。 由於

+0

檢查如果myDate.getDay()== 5然後添加2 + (你想要延長的那一天)2跳過星期六和星期日 –

+0

你應該用毫秒工作,或者你可以使用一個圖書館作爲moment.js –

+0

@VinodLouis我認爲這隻會在未來的日期LANDs在星期五工作。我需要它在繼續之前將星期五計算爲星期五(如果有意義的話)。例如:今天是星期五,星期三應該顯示+ 3天(不是星期一)。 –

回答

1

嘗試通過改變日期和天添加此代碼,自定義循環用於跳過飽和和太陽

function addDates(startDate,noOfDaysToAdd){ 
 
    var count = 0; 
 
    while(count < noOfDaysToAdd){ 
 
    endDate = new Date(startDate.setDate(startDate.getDate() + 1)); 
 
    if(endDate.getDay() != 0 && endDate.getDay() != 6){ 
 
     //Date.getDay() gives weekday starting from 0(Sunday) to 6(Saturday) 
 
     count++; 
 
    } 
 
    } 
 
    return startDate; 
 
} 
 

 

 
var today = new Date(); 
 
var daysToAdd = 3; 
 
alert(addDates(today,daysToAdd));

+0

這是完美的!除此之外,有沒有辦法讓結果顯示爲:dd/mm/yyyy? (en-GB) –

+0

有很多方法可以做到這一點縫http://stackoverflow.com/questions/13459866/javascript-change-date-into-format-of-dd-mm-yyyy –

+0

我真的不是擅於此:(我不知道如何 –