更新了我的问题
如何在
时使用纯JavaScript获取两个日期之间的总差异条件(1)::同月,同年但日期变更
newDate: 18/10/2016 0:50
oldDate: 17/10/2016 23:05
条件(2)::当月的上一日期和下个月的第一个日期
newDate: 1/11/2016 0:50
oldDate: 31/10/2016 23:05
条件(3)::年份的最后日期和新年的第1个日期
newDate: 1/1/2017 0:50
oldDate: 31/12/2016 23:05
注意:请查看newDate和oldDate以了解条件。
感谢
答案 0 :(得分:0)
使用以下纯JavaScript代码完成我的要求
在我的代码中,starttime和endtime是
//var startTime = localStorage.getItem("starttime");
//var endTime = new Date();
这里的例子。
var startTime = new Date("Sat Dec 31 2016 15:35:57 GMT+0530 (India Standard Time)");
var endTime = new Date("Sun Jan 1 2017 15:35:57 GMT+0530 (India Standard Time)");
var totalMiliseconds = endTime - startTime;
alert(totalMiliseconds);
//output:: 86400000
var totalSeconds = totalMiliseconds/1000;
alert(totalSeconds);
//output:: 86400
var totalMinuts = totalSeconds/60;
alert(totalMinuts);
//output:: 1440
var totalHours = totalMinuts/60;
alert(totalHours);
//output:: 24
这符合我的所有三个条件。
感谢您的支持!!!
答案 1 :(得分:0)
由于您不想使用库来解析日期字符串,因此您可以编写一个简单的函数,例如:
// Parse date string in "Sat Dec 31 2016 15:35:57 GMT+0530 (India Standard Time)" format
function parseDate(s) {
// Split into tokens
var b = s.match(/\w+/g) || [];
var months = 'jan feb mar apr may jun jul aug sep oct nov dec'.split(' ');
// Determine offset in minutes
var offSign = /GMT+/.test(s)? -1 : 1;
var offset = b[8].substr(0,2)*60 + +b[8].substr(2,2);
// Create date, applying offset to minutes
var date = new Date(Date.UTC(b[3],
months.indexOf(b[1].toLowerCase()),
b[2],
b[4],
+b[5] + (offSign*offset),
b[6]));
return date;
}
var d = parseDate("Sat Dec 31 2016 15:35:57 GMT+0530 (India Standard Time)")
console.log('UTC: ' + d.toISOString() + '\n' +
'Local: ' + d.toLocaleString());