【发布时间】:2023-03-24 20:00:02
【问题描述】:
我正在尝试检查此日期选择器 (pickadate.js) 是否已选择当前日期。这是我的代码:
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate() + 1);
var nextyear = new Date();
nextyear.setFullYear(nextyear.getFullYear() + 1);
var pickupdatepicker = $("#car-rental-pickup-date").pickadate({
editable: true,
format: "mm/dd/yyyy",
min: today,
max: nextyear,
today: "",
close: "",
clear: "",
onSet: function(context) {
var d = new Date(context.select);
dnotime = new Date(d.toDateString());
todaynotime = new Date(today.toDateString());
var currenthour = new Date().getHours();
var hourp3 = currenthour + 13;
console.log (dnotime);
console.log (todaynotime);
if (dnotime == todaynotime) {
time.set({
disable: [
{ from: [0,0], to: [hourp3,00] }
]
});
console.log ("today!");
}else{
console.log ("not today!");
}
}
});
<link rel="stylesheet" href="https://amsul.ca/pickadate.js/vendor/pickadate/lib/themes/default.date.css" id="theme_date">
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://amsul.ca/pickadate.js/vendor/pickadate/lib/picker.js"></script>
<script src="https://amsul.ca/pickadate.js/vendor/pickadate/lib/picker.date.js"></script>
<input type="date" name="car-rental-pickup-date" id="car-rental-pickup-date" class="form-control tleft readonly" value="" placeholder="Select Pickup Date" required>
但是比较两个日期的 if 语句不起作用,但控制台说它们是相同的。是什么赋予了?有人可以检查一下并告诉我我做错了什么吗?
【问题讨论】:
-
您无法比较日期对象,除非您先将它们转换为毫秒。
d.getTime()&today.getTime()if(d==today){//...}但是你可以比较日期的每一部分,比如 if(today.getDate()==d.getDate() && today.getMonth()==d.getMonth( ) && today.getFullYear()==d.getFullYear()){//...} -
以上澄清-
var dTime = d.getTime()和var todayTime = today.getTime()然后if(dTime==todayTime){/...} -
dnotime = new Date(d.toDateString());太糟糕了,就做d.setHours(0,0,0,0)。
标签: javascript jquery date datepicker pickadate