Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取用户选择日期的最后7天_Javascript_Bootstrap Datetimepicker_Days_Date Difference - Fatal编程技术网

Javascript 获取用户选择日期的最后7天

Javascript 获取用户选择日期的最后7天,javascript,bootstrap-datetimepicker,days,date-difference,Javascript,Bootstrap Datetimepicker,Days,Date Difference,我有一个datetimepicker,用户在其中选择一个日期,我的要求是我需要在他选择的日期之间相差7天 例如 如果用户选择了2017-03-01,那么我需要从2017-03-01开始的最后7天,而不是当前日期 function msToDateTime(s) { Number.prototype.padLeft = function(base,chr){ var len = (String(base || 10).length - String(this).le

我有一个datetimepicker,用户在其中选择一个日期,我的要求是我需要在他选择的日期之间相差7天

例如

如果用户选择了2017-03-01,那么我需要从2017-03-01开始的最后7天,而不是当前日期

function msToDateTime(s) {
    Number.prototype.padLeft = function(base,chr){
           var  len = (String(base || 10).length - String(this).length)+1;
           return len > 0? new Array(len).join(chr || '0')+this : this;
    }
    if(s != null){
        s = new Date(s);
//      var d = new Date(s);
//      var d = new Date(s.getTime()+s.getTimezoneOffset()*60*1000+timeConversionToMilliseconds(sessionStorage.getItem("accounttimezone").split('+')[1]+':00'))
        var d = new Date(s.getTime()+(s.getTimezoneOffset()*60*1000)+ (330 *60*1000));
        dformat = [ d.getFullYear(),
                    (d.getMonth()+1).padLeft(),
                    d.getDate().padLeft()].join('-')+
                    ' ' +
                  [ d.getHours().padLeft(),
                    d.getMinutes().padLeft(),
                    d.getSeconds().padLeft()].join(':');
         return dformat;    
    }else{
        return " ";
    }
}
我在这里检查的所有答案都是基于今天的天数差异

有人能帮我吗

$("#dateTimePickerIdWhereUserSelectsHisDate").val() - (7 * 24 * 60 * 60 * 1000);
这是其中一个答案,但不起作用


我怎样才能做到这一点呢?

试试这个 选择日期时间将为您提供所选日期
604800000是以毫秒为单位的7天
prevDate将为您提供最后7天的日期

$("#startDate").on("dp.change", function(e) {
    if (e.oldDate != null) {
        if (e.date.format('D') != e.oldDate.format('D')) {

          var selectDateTime = e.date["_d"].getTime();
          var prevDateTImeMili = selectDateTime - 604800000;
            var  prevDate = msToDateTime(prevDateTImeMili)
          $('#startDate').data("DateTimePicker").hide();
        }
    }
});
msToDateTime是一个将毫秒转换为日期时间的函数

function msToDateTime(s) {
    Number.prototype.padLeft = function(base,chr){
           var  len = (String(base || 10).length - String(this).length)+1;
           return len > 0? new Array(len).join(chr || '0')+this : this;
    }
    if(s != null){
        s = new Date(s);
//      var d = new Date(s);
//      var d = new Date(s.getTime()+s.getTimezoneOffset()*60*1000+timeConversionToMilliseconds(sessionStorage.getItem("accounttimezone").split('+')[1]+':00'))
        var d = new Date(s.getTime()+(s.getTimezoneOffset()*60*1000)+ (330 *60*1000));
        dformat = [ d.getFullYear(),
                    (d.getMonth()+1).padLeft(),
                    d.getDate().padLeft()].join('-')+
                    ' ' +
                  [ d.getHours().padLeft(),
                    d.getMinutes().padLeft(),
                    d.getSeconds().padLeft()].join(':');
         return dformat;    
    }else{
        return " ";
    }
}
函数getDaysBefore(日期字符串,numberOfDaysBefore){ 让startingDate=新日期(dateString).getTime(); 让datesArray=[], DaysCenter=0, 日=1000*60*60*24; while(dayscenter