以日期计算的天数更改日期格式

change date formate in date calculated days

本文关键字:日期 格式 计算      更新时间:2023-09-26

这是我与计算日期代码的日期差,我的用户日期格式为yy-dd-mm,但我已将格式更改为dd-mm-yy。因此我更改了格式代码,但它无法正常工作。有人能帮忙吗?

<script>
var calculate = function() {
    var from = document.getElementById("txtdate").value;
    var fromdate = from.slice(3, 5);
    fromdate = parseInt(fromdate);
    var frommonth = from.slice(0, 2); 
    frommonth = parseInt(frommonth);
    var fromyear = from.slice(6, 10); 
    fromyear = parseInt(fromyear);
    var to = document.getElementById("txtdate1").value;
    var todate = to.slice(3, 5); 
    todate = parseInt(todate);
    var tomonth = to.slice(0, 2); 
    tomonth = parseInt(tomonth);
    var toyear = to.slice(6, 10); 
    toyear = parseInt(toyear);
    var oneDay = 24*60*60*1000;
    var firstDate = new Date(fromyear,frommonth,fromdate);
    var secondDate = new Date(toyear,tomonth,todate);
    var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay))+1);
    if (diffDays)
        document.getElementById("result").value=diffDays;
}
</script>

搜索n替换这两行代码:

var fromdate = from.slice(3, 5);
var frommonth = from.slice(0, 2); 

收件人:

var fromdate = from.slice(0, 2);
var frommonth = from.slice(3, 5); 

搜索并替换这两行:

var todate = to.slice(3, 5); 
var tomonth = to.slice(0, 2); 

收件人:

var todate = to.slice(0, 2); 
var tomonth = to.slice(3, 5); 

让其余的行保持原样。

您应该使用from.split('-')函数来获取日期、月份和年份。然后为from和to创建一个新的Date(年、月、日期)。newTo newFrom给出2个日期之间的日期差(以毫秒为单位)。将此差异除以1000*3600*24,得到以天为单位的日期差异

var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 

有关参考,请参阅在javascript中获取两个日期之间的差异?

<html>
<head>
    <title></title>    
</head>
<body>
<input type="text" id="txtdate" value="16-04-2016" />
<input type="text" id="txtdate1" value="24-05-2016" />
<input type="text" id="result" value="" />
<!-- dd-mm-yyyy -->
<script type="text/javascript">
var calculate = function() {
    var from = document.getElementById("txtdate").value;
    var to = document.getElementById("txtdate1").value;        
    document.getElementById("result").value= process(to,from)+' Days';
}
function process(d1,d2){
var date1 = d1.split('-');
var date2 = d2.split('-');
var start = new Date(date1[2], +date1[1]-1, date1[0]);
var end = new Date(date2[2], +date2[1]-1, date2[0]);
return (start.getTime() - end.getTime()) / (1000*60*60*24);
}
calculate();
</script>   
</body>
</html>

Fiddle