Javascript日期操作

Fun*_*k91 3 javascript jquery

可能重复:
通过从Javascript中的特定日期减去X天数来查找日期

我有一个jQuery日期选择器,允许用户从任何给定的一周中选择一个星期五.我想根据周五填写字段,并输入周一至周四的日期.

即用户选择即将到来的星期五(2012年10月26日),我想从1日减去星期四,然后星期三,等等.

我该如何处理?

    $(document).ready(function(){
        $("#friDate").Zebra_DatePicker({
            format: 'm-d-Y',
            disabled_dates: ['* * * 0-4,6'],
            first_day_of_week: 0,
            onSelect: function(){
                var date = $("#friDate").val();
                $("#mon").val('INSERT MON DATE');
                $("#tue").val('INSERT TUE DATE');
                $("#wed").val('INSERT WED DATE');
                $("#thu").val('INSERT THU DATE');
                $("#fri").val(date);                    
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!谢谢 :).

Jua*_*des 5

要从现有日期中减去一天,只需减去一天中的毫秒数.

var today = new Date();
var yesterday = new Date(today.getTime() - 1000*60*60*24);

// As pointed out by Waxen, we need to account for daylight savings changes
function addDays(date, days) {
    var newDate = new Date(date.getTime() + (1000*60*60*24*days) );
    // To account for daylight savings differences
    // The hours won't be the same when crossing the daylight savings changes
    var hourDifference =  newDate.getHours() - date.getHours();
    var msInHour = 60*60*1000;
    if (hourDifference > 0) {
        newDate = new Date(newDate.getTime() + msInHour) ;
    } else if (hourDifference < 0){
        newDate = new Date(newDate.getTime() - msInHour) ;    
    }    
    return newDate;    
}
Run Code Online (Sandbox Code Playgroud)

因此,对于您的代码,您可以执行以下操作

$("#mon").val(addDays(date, -4));
$("#tue").val(addDays(date, -3));
$("#wed").val(addDays(date, -2);
$("#thu").val(addDays(date, -1));
$("#fri").val(date);             
Run Code Online (Sandbox Code Playgroud)

更新虽然我的代码有效,但Waxen的解决方案更简单,我会使用它.我会在这里留下这个答案以供参考