使用Moment JS格式化和比较日期和时间

时间:2015-11-13 21:02:17

标签: jquery momentjs

试图了解时刻js但苦苦挣扎......

我有一个开始和结束日期&时 我有4个文本输入类型,将具有这样的值

开始日期:2015年11月13日 开始时间:下午2:00

结束日期:2015年11月13日 结束时间:下午3:00

我想做两件事, 1.确保日期是日期(有效) 2.检查以确保结束日期&时间不是在开始日期和时间之前时间

var startDateTime = moment(startDate + startTime).format("D-MMM-YYYY h:mm A")
var endDateTime = moment(endDate + endTime).format("D-MMM-YYYY h:mm A")
但是如果我这样做的话 `alert(startDateTime)我刚刚得到"无效日期"

任何想法我做错了什么?

3 个答案:

答案 0 :(得分:0)

按照布拉格关于约会有效期的建议......

关于问题2,您需要使用像isBefore这样的方法:

moment('2010-10-20').isBefore('2010-12-31', 'year'); // false
moment('2010-10-20').isBefore('2011-01-01', 'year'); // true

这直接来自文档:isBefore

答案 1 :(得分:0)

你需要把模式放在当下的第二个参数()我想



startDate = '13-Nov-2015';
startTime = '2:00 PM';
endDate = '13-Nov-2015';
endTime = '3:00 PM';

var startDateTime = moment(startDate +' '+ startTime,"D-MMM-YYYY h:mm A");
var endDateTime = moment(endDate +' '+ endTime, "D-MMM-YYYY h:mm A");

alert(startDateTime.format("D-MMM-YYYY h:mm A"));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

这对我有用

 var startDate = moment($("#DateString").val()).format("D-MMM-YYYY");
        var endDate = moment($("#DateEndString").val()).format("D-MMM-YYYY");
        var endTime = $("#EndTime").val();
        var startTime = $("#StartTime").val();

        var startDateTime = moment(startDate + ' ' + startTime);
        var endDateTime = moment(endDate + ' ' + endTime);
alert(moment(startDateTime).format("D-MMM-YYYY h:mm A"));