最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - If month is not current month - Stack Overflow

programmeradmin7浏览0评论

We have a .NET web service which returns JSON, including a date in string format as follows: 2012-04-30T00:00:00+12:00.

In javascript, I want to exclude dates where the month is not the current month. Hence, with the above date, the month is 04 (April) and the current month is May (in New Zealand anyway). So, I want to ignore this record, e.g, in pseudocode:

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

How can I do this?

We have a .NET web service which returns JSON, including a date in string format as follows: 2012-04-30T00:00:00+12:00.

In javascript, I want to exclude dates where the month is not the current month. Hence, with the above date, the month is 04 (April) and the current month is May (in New Zealand anyway). So, I want to ignore this record, e.g, in pseudocode:

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

How can I do this?

Share Improve this question edited May 1, 2012 at 0:02 Gareth McCaughan 20k1 gold badge43 silver badges64 bronze badges asked Apr 30, 2012 at 23:53 user460114user460114 1,8734 gold badges31 silver badges55 bronze badges 1
  • It's pseudocode to kick you off in the right direction – user460114 Commented Apr 30, 2012 at 23:59
Add a ment  | 

4 Answers 4

Reset to default 6

EDIT: See Rob G's answer below for the solution that works in all browsers.

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

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

Here's the jsfiddle: http://jsfiddle/Mq5Tf/

More info on the date object: MSDN: https://developer.mozilla/en/JavaScript/Reference/Global_Objects/Date ES5: http://es5.github./#x15.9.2

var date = new Date();
var currentMonth = date.getMonth();
var yourMonth = 4;
if(yourMonth == currentMonth ){
    /* Do this */
    alert('Hello');
}

An alternative that doesn't depend on parsing the date string:

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

Edit

Note that checking the month number only works where the timezone offset should be ignored or is not significant. While 2012-04-30T00:00:00+12:00 is in April, 2012-04-30T14:00:00+12:00 will be 2am on 1 May local time.

// 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
}
发布评论

评论列表(0)

  1. 暂无评论