3

ユーザーの時間に応じて、特定のdivの内容を変更できるようにしたい。たとえば、午前5時の場合、特定のコンテンツが表示されます。午前6時の場合、別のコンテンツが表示されます。

John Doe 8am-4pm (changes to that name when its 8am-4pm)
John Doe 5pm-6pm (changes to that name when its 5pm-6pm)
John Doe 7pm-8pm (changes to that name when its 7pm-8pm)

http://www.venivortex.com/open-source/jquery-rotator.phpを使用していましたが、機能しません。誰かが似たようなことを知っていますか?

どんな助けでも大歓迎です!

4

2 に答える 2

4

非常に簡潔に

//initialize date object
var d = new Date();
var currentHour = d.getHours(); //note 0-23

if (currentHour < 6) 
 { 
     $('div').append('Before 6am');
  }
else if (currentHour == 7)
{
   $('div').append('7am');
}
else {
   $('div').append('Time Now' + d.getHours() + ':' + d.getMinutes()); 
  }

実例: http: //jsfiddle.net/9dUJ6/

elseで展開する場合

getDate()月の日を返します(1〜31から)
getDay()曜日を返します(0〜6から)
getFullYear()年(4桁)
を返しますgetHours()時間を返します(0〜から) 23)
getMilliseconds()ミリ秒(0〜999)を
返しますgetMinutes()分(0〜59)を返します
getMonth()月(
0〜11)を返しますgetSeconds()秒(0〜59)を返します
getTime()1970年1月1日午前0時からのミリ秒数を返し
ますgetTimezoneOffset()GMTと現地時間の時間差を分
単位で返しますgetUTCDate()ユニバーサル時間(1〜31)に従って月の日を返します
getUTCDay()世界時(0〜6)に従って曜日を
返しますgetUTCFullYear()世界時(4桁)に従って年を返しますgetUTCHours()世界時(
0〜6)に従って時間を返します23)
getUTCMilliseconds()世界時(0から999まで)に従ってミリ秒を返します
getUTCMinutes()世界時(0から59まで)に従って分を返しますgetUTCMonth()世界時(0から)
に従って月を返します-11)
getUTCSeconds()世界時(0から59まで)に従って秒を返します
getYear()非推奨。代わりにgetFullYear()メソッドを使用してください
parse()日付文字列を解析し、1970年1月1日の午前0時からのミリ秒数を返しますsetDate()
日を設定します(1〜31から)
setFullYear()年(4桁)
を設定しますsetHours()時間(0〜23)
setMilliseconds()ミリ秒(0〜999)を設定します
setMinutes()分( 0〜59)を設定し
ますsetMonth()月( 0〜11)を
設定しますsetSeconds()秒( 0〜59)
setTime()1970年1月1日午前0時から指定されたミリ秒数を加算または減算して日付と時刻を設定しますsetUTCDate(
)ユニバーサル時間(1〜31)に従って月の日を設定します
setUTCFullYear()世界時(4桁)に従って年を設定します
setUTCHours()世界時(0〜23)に従って時間を
設定しますsetUTCMilliseconds()世界時(0〜999)に従ってミリ秒を設定します
setUTCMinutes ()世界時(0〜59)に従って分を設定しますsetUTCMonth()世界時(
0〜11)に従って月を設定しますsetUTCSeconds()世界時(
0〜59)に従って秒を設定します
setYear()非推奨。代わりに
setFullYear()メソッドを使用してくださいtoDateString()Dateオブジェクトの日付部分を読み取り可能な文字列に変換します
toGMTString()非推奨。代わりにtoUTCString()メソッドを使用してください
toLocaleDateString()ロケール規則を使用してDateオブジェクトの日付部分を文字列として
返しますtoLocaleTimeString()ロケール規則を使用してDateオブジェクトの時間部分を文字列として返しますtoLocaleString()ロケール規則を使用して
Dateオブジェクトを文字列に変換します
toString()Dateオブジェクトを文字列に変換します
toTimeString()Dateオブジェクトの時間部分を文字列に変換します
toUTCString()ユニバーサル時間に従ってDateオブジェクトを文字列に変換し
ますUTC()日付のミリ秒数を返します1970年1月1日の深夜以降の文字列、ユニバーサル時間に従って
valueOf()Dateオブジェクトのプリミティブ値を返しますi

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Dateは、日付オブジェクトの概要を提供します

w3schoolsもそうです http://www.w3schools.com/jsref/jsref_obj_date.asp

于 2011-06-08T17:27:28.900 に答える
2

このようなものはあなたにとって良いスタートになるはずです:

$(function(){

    $('#timeperiod1').mood({
        range: [1, 7] // hours
    });
    $('#timeperiod2').mood({
        range: [7, 12] // hours
    });
    $('#timeperiod3').mood({
        range: [12, 24]  // hours
    });
});

// the jquery plugin
// TODO: add end of day re init
//       add min/sec along with hours
$.fn.mood = (function(){
    var Mood = function(el, opts){
        this.el = $(el);

        this.range = { bottom: opts.range[0]*1, top: opts.range[1]*1 };
        this.init();
    };
    Mood.prototype = {
        init: function(){
            this.initTime = this.checkTime(); // 1, 0, -1

            this.initTime == 0 ? this.show() : this.hide();
            this.start();
        },
        start: function(){
            var t = new Date(), 
                showDate = new Date(t), 
                hideDate = new Date(t), 
                h = t.getHours(), hide = false, show = false;

            if(this.initTime < 0) {// time has not yet come
                showDate.setHours(this.range.bottom);
                showDate.setMinutes(0);
                show = true;

            }
            if(this.initTime <= 0){
                hideDate.setHours(this.range.top);
                hideDate.setMinutes(0);
                hide = true;
            }
            debugger;
            show && setTimeout($.proxy(this.show, this), Math.ceil(showDate.getTime()-t.getTime()));
            hide && setTimeout($.proxy(this.hide, this), Math.ceil(hideDate.getTime()-t.getTime()));
        },

        checkTime: function(){
            var t = new Date(), h = t.getHours();
            if(h >= this.range.bottom && h <= this.range.top)
                return 0;
            if(h < this.range.bottom)
                return -1;  
            if(h > this.range.top)
                return 1;  
        },
        show: function(){
            this.el.show('slow');
        },
        hide: function(){
            this.el.hide('slow');
        }

    };

    return function(opts){
        return this.data('rotateMood', new Mood(this, opts));    
    };
})();
于 2011-06-08T18:33:37.947 に答える