时刻js两个datetimepicker时间比较

问题描述 投票:0回答:1

我有2个daettimepickers start_date_time和end_date_time想在$(end,start).change上,我想比较是否超过6小时的差异显示警报并清除输入内容

$('.dateTo,.dateFrom').blur(function () {
            if ($('.dateFrom').val() !== '' && $('.dateTo').val() !== '') {

                var fromTime = moment($('.dateFrom').val(),"YYYY-MM-DD HH:mm:ss");
                var toTime = moment($('.dateTo').val(), "YYYY-MM-DD HH:mm:ss");
                console.log(fromTime + ' - ' + toTime); 
                //above returns 1135054800000 - 1166562000000
                //while i expect formated as above
                var duration = moment.duration(toTime.diff(fromTime));
                var hours = duration.asHours();
                console.log(hours);
                //return 8752 in meridiam is changed (from 04/12/2019 9:am to 05/12/2019 1pm)
                if (fromTime >= toTime) {
                    $(this).val('');
                    alert('ToTime should be greater than fromTime.');
                }
                var diffMs = (toTime - fromTime)
                var diffMins = Math.floor(diffMs / 60000);

                if (diffMins > (6 * 60) && $(".PermissionType").val()=="Personal") {
                    $(this).val('');
                    alert('Duration should not increase 6 hours.');
                }
            }
        });

var duration = moment.duration(toTime.diff(fromTime)); var hours = duration.asHours();

以上行在AM / PM的开始日期和结束日期时间不同时返回错误的时差

我需要05/12/2019 11:00 PM06/12/2019 12:00 AM的时差,这将返回我876105/12/2019 11:00 PM05/12/2019 11:59 PM返回0.9833333333333333

javascript momentjs datetimepicker
1个回答
0
投票

我已经对此进行了测试,因此无法重现您的问题。使用datetime-local输入,您可以选择时间,并获得正确的am / pm格式。

<input type="datetime-local" id="start">
<input type="datetime-local" id="end">

这里是一个小提琴,展示了https://jsfiddle.net/fLzu854x/

© www.soinside.com 2019 - 2024. All rights reserved.