1

次のような文字列形式の日付を含むJSONを返す.NETWebサービスがあります:2012-04-30T00:00:00 + 12:00。

javascriptで、月が現在の月ではない日付を除外したいと思います。したがって、上記の日付では、月は04(4月)であり、現在の月は5月(とにかくニュージーランド)です。したがって、このレコードを無視したいのです。たとえば、擬似コードでは次のようになります。

if(vMonth == CurrentMonth){
     dothis();
}

これどうやってするの?

4

4 に答える 4

6

編集:すべてのブラウザで機能するソリューションについては、以下のRobGの回答を参照してください。

var dateOne = new Date("2012-04-30T00:00:00+12:00");​​​
var dateTwo = new Date();

if(dateOne.getMonth() == dateTwo.getMonth()) {
    alert("equal");
}

これがjsfiddleです:http: //jsfiddle.net/Mq5Tf/

日付オブジェクトの詳細:MSDN:https : //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date ES5:http ://es5.github.com/#x15.9.2

于 2012-04-30T23:57:53.443 に答える
3
var date = new Date();
var currentMonth = date.getMonth();
var yourMonth = 4;
if(yourMonth == currentMonth ){
    /* Do this */
    alert('Hello');
}
于 2012-04-30T23:59:21.607 に答える
2

日付文字列の解析に依存しない代替方法:

function checkMonth(ds) {
  var now = new Date();
  var m = now.getMonth() + 1;
  return !!ds.match(now.getFullYear() + '-' + (m<10?'0':'') + m);
}

// on 2012-05-01
alert( checkMonth('2012-04-30T00:00:00+12:00') ); // false
alert( checkMonth('2012-05-01T00:00:00+12:00') ); // false

編集

月番号のチェックは、タイムゾーンオフセットを無視する必要がある場合、または重要でない場合にのみ機能することに注意してください。4月中2012-04-30T00:00:00+12:00は、2012-04-30T14:00:00+12:00現地時間の5月1日の午前2時になります。

于 2012-05-01T00:48:10.643 に答える
0
// Means April 30, months are indexes in JS
var input = new Date(2012, 03, 30);​​​
// or use format new date("2012-04-30T00:00:00+12:00") suggested in other answer

var currentDate = new Date();

if(input.getFullYear() == currentDate.getFullYear() // if you care about year
   && input.getMonth() == currentDate.getMonth()) {

    // act accordingly
}
于 2012-05-01T00:02:08.670 に答える