0

この一見単純なタスクを達成するための助けを探しています。私にはこれを理解するためのノウハウがありません。

基本的に、jQuery の日付ピッカーから作業指示書の日付 (期日) を選択するフォームがあります。結果は、別のページの表に他の作業指示とともに表示されます。

表に表示されている日付が期限を過ぎているかどうかを判断し、日付が今日の日付より前の場合は CSS を変更する方法を見つけようとしています。テーブルにはいくつかの行があり、各行には評価が必要な期日があるため、これは私を困惑させました.

<table>
<tr>
<td class="dueDate">November 1, 2012</td>
</tr>
<tr>
<td class="dueDate">November 4, 2012</td>
</tr>
<tr>
<td class="dueDate">November 26, 2012</td>
</tr>
</table>

これは、フォームが表示されたときのテーブルのレイアウトです。そして、これは、表示された日付が今日の日付より前かどうかを判断するためにまとめると考えることができる最も近いものです。

$('.dueDate').each(function(){
var dueDate = $(this).val();
var today = new Date();
if (Date.parse(dueDate) < Date.parse(today)){
$(".dueDate").addClass("pastDue");
}        
});

これは機能していないようです。何か案は?

4

4 に答える 4

1

また、これは dueDate が ID ではなくクラスであるため.dueDate、セレクターを使用する必要があります。#dueDate

于 2012-11-04T06:33:56.767 に答える
0

この投稿は役に立ちましたが、以下のコード行は機能しませんでした:

    var dueDate = $(this).val();

代わりに、以下のコードを使用しましたが、うまくいきました

    var dueDate = $(this).text();
于 2014-02-05T22:40:48.700 に答える
0

試すDate.parse

  if (Date.parse(dueDate) < Date.parse(today)) {
      $(".dueDate").addClass("pastDue");// . for class
  }
于 2012-11-04T06:30:33.910 に答える
0

最良の方法は、日付を Unix タイムスタンプに変換することです。これは単なる数字です。次に、数値を比較するだけで、日付が過ぎているかどうかがわかります。ここから取得したこの関数を使用できます: How to convert Regular Date to unixtime in Javascript?

function covertToUnixTime(yourDate) {
    return new Date(yourDate.substring(4, 8) + '/' + 
                    yourDate.substring(2, 4) + '/' + 
                    yourDate.substring(0, 2)).getTime() / 1000;
}

covertToUnixTime('12092008');   // Returns: 1221170400
//12-09-2008 is the date

jQuery.now()タイムスタンプで実際の日付を取得し、両方を比較するために使用することもできます。詳細については、http: //api.jquery.com/jQuery.now/を参照してください 。

于 2012-11-04T06:32:37.327 に答える