簡體   English   中英

在JavaScript中設定日期條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM