1

たとえば、週/年を選択し1 / 2012たり53 / 2010、日付ピッカーのように使用できるjQueryプラグインはありますか?

つまずきましたが、一致するプラグインが見つかりませんでした。シンプルな選択ボックスを考えていますが、ピッカーが良いUXを与えるようです。

4

2 に答える 2

3

jquery UI datepicker のスタイルを変更するプロジェクトの 1 つでそれを行いました。また、日付から週番号を取得することは、見かけほど単純ではありません: http://brainhog.blogspot.ie/2011/07/get-me-week.html

とにかく、ここに完全な解決策があります:

CSS:

.ui-datepicker .ui-datepicker-calendar { border-collapse: separate; border-spacing: 0 2px; }
.ui-datepicker .ui-datepicker-calendar td { padding: 0; border: 1px solid #D3D3D3; border-width: 1px 0; }
.ui-datepicker .ui-datepicker-calendar td:last-child { border-right-width: 1px; }
.ui-datepicker .ui-datepicker-calendar td a { border: none; }
.ui-datepicker .ui-datepicker-calendar tbody tr:hover td { border-color: #FCEFA1; }
.ui-datepicker-calendar tbody tr:hover td a { background: #FCFAF1; }
.ui-datepicker-calendar tbody tr:hover .ui-datepicker-week-col,
.ui-datepicker-calendar tbody tr .ui-datepicker-week-col { background: #757575; padding: 0.2em; color: #fff; text-align: right; border: 1px solid #3F3F3F; }
#weekPicker { font-size: .7em; }

js:

$('#weekPicker').datepicker({ 
    firstDay: 1, 
    showWeek: true, 
    weekHeader: '', 
    dateFormat: 'yy-mm-dd',
    beforeShow: function(input, inst){ 
        var yw = input.value.split('-'), dat = getDateFromWeek(yw[0], yw[1]); 
        $('#weekPicker').datepicker("setDate", dat); 
    },
    onClose: function(input, inst){ 
        var yw = new Date(input).getFullWeek(); 
        inst.input.val(yw.y+'-'+yw.w); 
        $('#weekPicker2').html('<b>Week ' + yw.w+'</b>: '+input); 
    }
});

また、次の関数も必要です。

//Returns ISO 8601 week number and year
Date.prototype.getFullWeek = function(){
    var jan1, w, d = new Date(this);
    d.setDate(d.getDate()+4-(d.getDay()||7));   // Set to nearest Thursday: current date + 4 - current day number, make Sunday's day number 7
    jan1 = new Date(d.getFullYear(),0,1);       // Get first day of year
    w = Math.ceil((((d-jan1)/86400000)+1)/7);   // Calculate full weeks to nearest Thursday
    return {y: d.getFullYear(), w: w };
};
//Returns ISO 8601 week number
Date.prototype.getWeek = function(){ return this.getFullWeek().w; };
var getWeeksInYear = function(y){ return new Date(y,11,28).getFullWeek().w; };

問題/質問がある場合、およびこれが機能するかどうかをお知らせください。

于 2012-08-30T09:34:13.603 に答える
0

こちらをご覧ください。このピッカーでは、月/年を個別に選択できます。おそらく、週末番号も設定/取得するように変更できます。

于 2012-08-30T09:25:43.403 に答える