[英]Making a condition on dates in javascript
我在某些視圖中有一個javascript函數。 控制器向該視圖發送兩個日期(開始日期和結束日期)。 我在功能中要做的只是在執行某些操作之前檢查條件。
<script>
$(function() {
var start_date = <% @date1 %>
var end_date = <% @date2 %>
unavailableDates = [];
$.ajax({
url: '/preload',
data: {'voiture_id': <%= @voiture.id %>},
dataType: 'json',
success: function(data) {
$.each(data, function(arrID, arrValue) {
for(var d = new Date(arrValue.start_date); d <= new Date(arrValue.end_date); d.setDate(d.getDate() + 1)) {
// CHECK that !(d >= start_date && d <= end_date) before push action
unavailableDates.push($.datepicker.formatDate('d-m-yy', d));
}
});
}
</script>
。 開始日期和結束日期的類型
t.datetime "start_date"
t.datetime "end_date"
我希望這很清楚,謝謝!
解:
var startDate = new Date(<%= @date1.to_i*1000 %>);
var endDate = new Date(<%= @date2.to_i*1000 %>);
。
if (!(d.getDate()>=startDate.getDate() && d.getDate()<=endDate.getDate()))
{
unavailableDates.push($.datepicker.formatDate('d-m-yy', d));
}
這是執行與您嘗試實現的功能相同的功能的代碼段。 似乎在評估日期期間缺少getTime()函數。
/* setting up temporary date range for iteration */
var unavailableDates = [];
var endDate=new Date();
var startDate=new Date(endDate);
startDate.setDate(startDate.getDate()-7);
for(var startdt= new Date(startDate);
startdt.getTime()<endDate.getTime();
startdt.setDate(startdt.getDate()+1)){
if(startdt.getTime()>=startDate.getTime() && startdt<=endDate.getTime())
{
unavailableDates.push(new Date(startdt));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.