0

私はこれら 2 つの var の curdate と sdate を持っています...sdate は誰かが入力した標準的な文字列で、curdate と比較されます。curdate は smarty テンプレートの日付フィールドです (今日の日付を mm/dd/yyyy 形式で表示します)

curdate と比較する前に sdate を同じタイプ形式に変換する必要があるため、誰かが jan/12/2013 のようなものを入力しません...一致せず、このメッセージが表示されます。

if(sdate > curdate){
    var d= confirm("The date you selected: " + sdate + " is in the future, OK to continue?");
    if(!d) return false;
}
4

3 に答える 3

1

moment.jsを使用すると、次のようなことができます。

if (moment(sdate, 'MM/DD/YYYY') > moment(curdate))
...

curdateそれが「今」を表していると言っている場合は、次のようにします。

if (moment(sdate, 'MM/DD/YYYY') > moment())
...

日付が特定の形式であることを確認したい場合は、検証関数を使用できます。

if (moment(sdate, 'MM/DD/YYYY').isValid())
...
于 2013-05-03T14:42:54.293 に答える
1

Date.jsのようなライブラリを使用して、ユーザーが入力した文字列やその他の日付に似た値を既知の形式に解析できます。次に、直接比較します。

if (Date.parse(sdate) > Date.parse(curdate)) {
  ...
}
于 2013-05-03T14:37:59.927 に答える