2016-04-13 14 views

cevap

2
function getPreviousWorkday(){ 
    let workday = moment(); 
    let day = workday.day(); 
    let diff = 1; // returns yesterday 
    if (day == 0 || day == 1){ // is Sunday or Monday 
    diff = day + 2; // returns Friday 
    } 
    return workday.subtract(diff, 'days'); 
} 
4

Güncelleme Yaklaşım dönmek (döngü olmadan)

day() işlevinden yararlanabilirsiniz.

function getPreviousWorkday(){ 
    // Based on the current day, handle accordingly 
    switch(moment().day()) 
    { 
     // If it is Monday (1),Saturday(6), or Sunday (0), Get the previous Friday (5) 
     // and ensure we are on the previous week 
     case 0: 
     case 1: 
     case 6: 
     return moment().subtract(6,'days').day(5); 
     // If it any other weekend, just return the previous day 
     default: 
     return moment().day(today - 1); 
    } 
} 

hangi can be seen here bunları aşağıda gösterildiği: o belirli günlerde dayalı önceki Cuma bulmak moment.js haftanın anki gününü belirlemek için izin verecek

enter image description here

Döngü Yaklaşım

Geçerli andan güne subtract() işlevini kullanarak mevcut anı örneğinizden günler çıkartabilirsiniz.

function getPreviousWorkday(){ 
    // Get today 
    var today = new moment().subtract(-1,'days');; 
    // If today isn't a weekend, continue iterating back until you hit a non-weekend 
    while([0,6].indexOf(today.day()) !== -1){ 
    today = today.subtract(1, 'days'); 
    } 
    // Return the non-weekend day 
    return today; 
} 

Aşağıda gösterildiği see an example of this in action here ve: olmayan bir haftasonu gününü ulaştı

enter image description here

0
function getPreviousWorkday() { 
    return [1, 2, 3, 4, 5].indexOf(moment().subtract(1, 'day').day()) > -1 ? 
    moment().subtract(1, 'day') : moment(moment().day(-2)); 
} 

önceki gün hafta içi ise, önceki gün iade/Hafta içi. Aksi takdirde bir önceki gün bir cumartesi veya pazar günü ise önceki cumaya dönmelidir.

İlgili konular