我有3个日期:Present
,Start
和End
。
当前日期= '11 / 21/2018'(今天的日期)
开始='2015年5月5日'
End = '12 / 4/2019
我需要使用这些日期创建一个日期范围。
我有以下代码来计算日期范围。
function createLedger(stDate, etDate) {
if (stDate && etDate) {
var endOfLeaseDate = moment(etDate, "MM/DD/YYYY");
var startOfLeaseDate = moment(stDate, "MM/DD/YYYY");
dateRange(startOfLeaseDate, endOfLeaseDate);
}
}
function dateRange(stDate, etDate) {
var dates = [];
var now = stDate.clone();
var day = stDate.date();
while(now.isBefore(etDate)) {
//deal with variable month end days
var monthEnd = now.clone().endOf("month");
if (now.date() < day && day <= monthEnd.date()) { now.date(day); }
dates.push(now.format("YYYY-MM-DD"));
now = now.clone().add({ "months" : 1 });
}
console.log(dates);
}
function RunLedgerAndPV() {
var pDate = "11/21/2018"
var stDate = "10/5/2015";
var etDate = "12/4/2019";
createLedger(stDate, etDate);
}
RunLedgerAndPV();
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
我需要以一种从日期到当前日期的日期而不是StartDate的方式进行编辑,但是范围本身是基于开始日期的。
感谢您的帮助!谢谢。
答案 0 :(得分:0)
您只需要将今天的日期(格式)分配给pDate。
function RunLedgerAndPV() {
var now = new Date();
var nowMonth = ("0" + now.getMonth()).slice(-2);
var nowDate = ("0" + now.getDate()).slice(-2);
var nowYear = now.getFullYear();
// "11/21/2018"
var pDate = nowMonth + '/' + nowDate + '/' + nowYear;
console.log(pDate);
var stDate = "10/5/2015";
var etDate = "12/4/2019";
createLedger(pDate, etDate);
}
答案 1 :(得分:0)
执行以下操作对我有用。我使用开始日期“ day”和当前月份和年份创建了一个新日期,并使用该天创建了一个数组。
var pastDT = stDate.getUTCDate();
var pastMT = pDate.getUTCMonth()+2;
var pastYR = pDT.getUTCFullYear();
var LedgerDT = pastMT + '/' + pastDT + '/' + pastYR;
var pastStart = presentDate > startDate;
if (startDate && pastStart){
var stDate = moment.utc(new Date(LedgerDT)).format("MM/DD/YYYY");
}
else if (startDate && !pastStart)
var stDate = moment.utc(new Date(presentDate)).format("MM/DD/YYYY");
var etDate = moment.utc(new Date(endDate)).format("MM/DD/YYYY");
createLedger(stDate, etDate);