【问题标题】:get last 7 days when user picks up a date获取用户选择日期的最后 7 天
【发布时间】:2017-06-27 11:56:16
【问题描述】:
我有一个日期时间选择器,用户可以在其中选择一个日期,我的要求是我需要在他选择的日期之间相差 7 天。
例如,
如果用户选择了 2017-03-01,那么我需要从 2017-03-01 开始的最后 7 天,并且不是当前日期
我在这里检查的所有答案都是基于与今天的天数差异。
谁能帮帮我?
$("#dateTimePickerIdWhereUserSelectsHisDate").val() - (7 * 24 * 60 * 60 * 1000);
这是在其中一个答案上,但没有用。
我怎样才能做到这一点?
【问题讨论】:
标签:
javascript
bootstrap-datetimepicker
days
date-difference
【解决方案1】:
试试这个
SelectDateTime会给你选择的日期
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 是将毫秒转换为 DateTime 的函数
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 " ";
}
}
【解决方案2】:
function getNDaysBefore(dateString, numberOfDaysBefore) {
let startingDate = new Date(dateString).getTime();
let datesArray = [],
daysCounter = 0,
day = 1000 * 60 * 60 * 24;
while (daysCounter < numberOfDaysBefore + 1) {
let newDateBeforeStaring = startingDate - day * daysCounter;
datesArray.push(new Date(newDateBeforeStaring));
daysCounter++;
}
return datesArray;
}
var dateString = "2016-03-01";
alert(getNDaysBefore(dateString,7));
使用这种函数,您可以将给定日期之前的任何 N 天作为 Date 对象数组获取