根据日期插入代码

时间:2014-01-08 10:40:48

标签: javascript jquery

好的,我理解这个的基础知识,但我正在尝试设置一段代码,允许我使用jQuery的'.html'或'.append'函数插入HTML。

我已经单独管理了这个,但是我必须根据季节插入代码 - 这里有一点解释:我需要在夏天包含一段代码,一个用于冬天,春天等等。

现在,我知道如何获取当前日期,我知道如何使用IF语句,但我一直卡在日期的格式上,这样我就可以将它与季节的设置日期进行比较然后具有该功能每个人都跑。

如果有人需要他们,这里有一些例子,当然不准确:

  • 冬季:1月至3月
  • 春天:三月到六月
  • 夏季:6月至11月
  • 秋季:11月至1月

如果有人能给我一个这方面的例子,我将非常感激。 (我也无法弄清楚如何为季节的开始和结束添加更具体的日期,因为事实上几个月有更少/更多天....还有圣诞节和万圣节等事件)

3 个答案:

答案 0 :(得分:4)

请勿使用字符串日期,请使用Date object。它可以告诉您当前月份允许您:

var month = new Date().getMonth();
if(month >= 0 && month <= 2) { // Jan ... March
} ...

请注意,月份从0(== 1月)到11(== 12月)

开始

答案 1 :(得分:4)

var date = new Date(),
    month = date.getMonth(),
    date = date.getDate()m
    season;


if(month <= 2 && date <= 20) { // Up to 20th March
    season = "Winter";
} else if(month <= 5 && date <= 5) { // Up to 5th June
    season = "Spring";
} // etc


$("#myDiv").html("It is " + season);

更新了日期示例

答案 2 :(得分:1)

这是另一个选项,更复杂,但您可以根据要求设置日期,并查看它的季节。

var getSeason = function() {
    var self = this;
    return function(date, o) {
        if (date == 'getDefaults') return self.defaults;
        if (date == 'setDefaults') self.defaults = $.extend(self.defaults, o);

        date = typeof date == 'string' ? new Date(date) : date;
        var year   = date.getFullYear(),
            arr    = $.map(self.defaults, function(d, key) {
                    var dt = new Date(year, d.slice(0,2)-1, d.slice(3,5), 0,0,0,0);
                    dt.setDate(dt.getDate()-1); // subtract one to get the startdate right
                    return {season : key, start_date : dt};
                }).sort(function(a, b) {
                    return a.start_date.getTime() > b.start_date.getTime() ? 1 : -1;
                }),
            season = arr[arr.length-1].season;

        $.each(arr, function(idx, itm) {
            if (date > itm.start_date && arr[idx+1] != undefined && date < arr[idx+1].start_date) {
                season = itm.season;
                return false;
            }
        });
        return season;
    }
}

getSeason.prototype.defaults = { // start dates, (month/date)
    spring : '03/01',
    summer : '05/20',
    fall   : '08/04',
    winter : '10/10'
}

您使用new初始化新的季节检查程序,如下所示:

var seasonChecker = new getSeason;

然后用它来检查季节,你可以传递一个有效的字符串或日期对象:

seasonChecker( '03/20/14' );                            // returns "spring"
seasonChecker( '03-20-14' );                            // returns "spring"
seasonChecker( new Date('Thu Mar 20 2014 00:00:00') );  // returns "spring"
seasonChecker( new Date(1395270000000) );               // returns "spring"

您可以通过以下方式获取默认日期:

seasonChecker('getDefaults');

或随时使用以下内容设置实例的默认日期:

seasonChecker('setDefaults', {
    spring : '02/21',
    summer : '03/22',
    fall   : '06/04',
    winter : '11/01'
});

这是一个演示

FIDDLE