为了账号安全,请及时绑定邮箱和手机立即绑定

如何计算两个日期的天数

如何计算两个日期的天数

守候你守候我 2023-07-06 17:38:39
我想计算两个日期的天数我的日期格式是dd-mmm-yyyy这样的"10-Nov-2020" 有人可以帮我吗?<script>        var deFromDate;        var deToDate;        var statarr;        function deFromDateChanged(s, e) {            deFromDate = (s.GetInputElement().value)            //statarr = deFromDate.split('-');        }        function deToDateChanged(s, e) {            deToDate = (s.GetInputElement().value)            var Difference_In_Time = deToDate.getTime() - deFromDate.getTime();            var Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24);            alert(Difference_In_Days);        }    </script>我收到错误getTime()是否有其他方法可以执行相同操作
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

使用Date.parse()(尽管由于实现不一致而不鼓励使用)

function datediff(first, second) {

    return Math.round((second-first)/(1000*60*60*24));

}


const deFromDate = Date.parse('10-Nov-2020');

const deToDate = Date.parse('15-Nov-2020');


console.log(datediff(deFromDate, deToDate));

手动解析


var months = {

    'Jan' : 1,

    'Feb' : 2,

    'Mar' : 3,

    'Apr' : 4,

    'May' : 5,

    'Jun' : 6,

    'Jul' : 7,

    'Aug' : 8,

    'Sep' : 9,

    'Oct' : 10,

    'Nov' : 11,

    'Dec' : 12

}

function parseDate(str) {

    var [dd, mmm, yyyy] = str.split('-');

    return new Date(yyyy, months[mmm]-1, dd); // months are 0 indexed

}


function datediff(first, second) {

    return Math.round((second-first)/(1000*60*60*24));

}


const deFromDate = parseDate('10-Nov-2020');

const deToDate = parseDate('15-Nov-2020');


console.log(datediff(deFromDate, deToDate));


查看完整回答
反对 回复 2023-07-06
?
aluckdog

TA贡献1847条经验 获得超7个赞

我尝试使用正则表达式:


 <script>

        var deFromDate;

        var deToDate;

        var dt1;

        var dt2;

        function deFromDateChanged(s, e) {

            deFromDate = (s.GetInputElement().value)

            dt1 = new Date(deFromDate.replace(/(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"));

        }

        function deToDateChanged(s, e) {

            deToDate = (s.GetInputElement().value)

            dt2 = new Date(deToDate.replace(/(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"));

            var result = ((dt2 - dt1) / 86400000);

            alert(result);

        }


    </script>


查看完整回答
反对 回复 2023-07-06
  • 2 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信