1

javascriptで月と日を計算したい。

私の日付範囲は 24 か月以内になるという要件があります。

私はtodate2012年9月24日のどこかから来ました

今、

from date に 2010 年 8 月 31 日、 に 2012 年 9 月 24 日を入力するとtodate、エラー メッセージが表示されます。

現在、私はそのようにしています

todate.getMonth() - fromdate.getMonth() + (12 * (todate.getFullYear() - fromdate.getFullYear()))

ただし、日付に 2010 年 9 月 23 日と 2012 年 9 月 24 日を入力すると、エラー メッセージも表示されるはずです。

しかし、それは私にその日付を許可します..これは日付の24か月後です..だから、上記の日付を許可しない日付で月を計算するにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

これを試して日数を取得してください


function finddays(date_from, date_to) 
{return Math.round(Math.abs(new Date(date_from).getTime() - new Date(date_to).getTime())/(1000 * 60 * 60 * 24))}

使用する:

finddays("2010 年 9 月 23 日", "2010 年 9 月 25 日");

アップデート

推奨されていませんが、よりうまく機能します
これを試して月を取得してください(月を30日、エラーが発生しやすい+-3 /年)


 function findMonths(date_from, date_to) 
    {return Math.round((new Date(date_to).getTime()-new Date(date_from).getTime())/(1000 * 60 * 60 * 24*30))}

使用する:

findMonths("2010 年 9 月 23 日", "2010 年 10 月 25 日");

于 2013-09-13T08:51:34.930 に答える
1

問題は、同じ月が 2 年離れている場合、その月の日も確認する必要があることです。

function isValidDate (from, to) {
  var months = to.getMonth() - from.getMonth() + 
              (12 * (to.getFullYear() - from.getFullYear()));
  return months < 24 || months === 24 && to.getDate() < from.getDate();
}
于 2013-09-13T08:44:14.550 に答える