2014-03-03 37 views
3

如何從日期字段中減去日期?減去日期字段(mm/dd/yyy)中的天數,不包括週末jquery

實施例:

日期值是2014年3月10日(MM/DD/YY)

我希望能夠從中減去6個weedays得到03/03/2014

有人可以幫助我得到這個。

小提琴:增加6個工作日並禁用所有以前的日期值... 從這個小提琴任何日期選擇6平日必須從它減去。

即提前$("#txtFromDate").val() - 6 weekdays http://jsfiddle.net/7DHVr/8/

感謝

+0

plz提供一些代碼來獲得想法 –

+0

'weedays' = week days? –

回答

2
var count = 10; 
//Add the 2 days of weekend in numer of days . 
var d = new Date(); 

count = count + (parseInt(count/5))*2; 
d.setDate(d.getDate() -count); 
//suppose its ending on weekend day then increment them manually. 
if(d.getDay() == 6) d.setDate(d.getDate() -1); 
if(d.getDay() == 0){ d.setDate(d.getDate() - 2);}; 
alert(d); 

它會減少所有周末的日子從任何你想減去日動手凱莉

+0

謝謝tonne ....作品很棒! – BetRob

+0

歡迎................ –

+0

此代碼中的錯誤爲什麼從已接受的答案中刪除 –

1

這可以通過從一個日期類型變量減去在JavaScript等這樣做

var d = new Date("08/18/2009"); 
d.setDate(d.getDate()-5); 

這將返回表示該數字的字符串日期然後用

new Date(new Date().setDate(new Date().getDate()-5)) 

如果您想將其重新格式化爲日期 詳細的答案在這裏Subtract days from a date in JavaScript

+0

謝謝,但我希望它只減去一週的日子 – BetRob

+0

它不會工作,如果你想減去15天 –

1

只是添加到以前的答案。您可能想要使用DateJs以更方便地使用日期API。

所以它會像這樣:

Date.today().addDays(-6) 

要刪除6個平日,您需要做的僅僅

new Date().last().week() - this will substruct 5 weekdays 

,然後如果是平日然後substruct 1個附加,如果週六然後2 ,如果星期日 - 3

1

雖然你可以做到這一點使用標準的JavaScript對象Date,我強烈建議使用日期時間庫如moment.js,而不是試圖推出自己的。特別是當你考慮地區,時區,閏年,月份長度不同,星期幾是什麼時候,等等。

Moment.js有周一的支持和文檔可以找到here

若要從日期減去6個平日,你可以做到以下幾點:

moment(date).weekday(-6);

注意,您可以通過瞬間現有的JavaScript Date以及各種各樣的ISO日期格式,甚至只是一個包含[year, month, day, hour, minute, second]的數組。如果您提供沒有日期,那麼時間將默認爲當前日期和時間。

有關可以解析的內容的更多信息,請參見here

+0

是的,那個人看起來比DateJS更好。 +1 –

相關問題