2012-01-17 19 views
1

我很新的JavaScript和jQuery,但我設法得到特倫特理查森的jQuery Timepicker,http://trentrichardson.com/examples/timepicker/如果語句內jQuery時間選擇器

我添加了限制用戶可以選擇的限制日期,但我現在需要根據當前時間更改這些限制。如果當前時間爲下午3點,則添加一天,如果在下午3點之後添加2天。

我有它的工作,但我覺得代碼是有點笨重,思想欠佳。有誰知道是否有一個更優雅的方式來實現這一目標? 預先感謝:)

var currentTime = new Date() 
var hours = currentTime.getHours() 
var minutes = currentTime.getMinutes() 
if(hours > 15){ 
    //document.write("too late buster!") 
    $('#datepicker').datetimepicker({ 
    minDate: +2, 
    maxDate: +30, 
    dateFormat: "d/M", 
    timeFormat: 'hh:mm', 
    hourMin: 11, 
    hourMax: 19, 
    hourGrid: 4, 
    minuteGrid: 10, 
    stepMinute: 5, 
    separator: ' @ '}); 
} else { 
    $('#datepicker').datetimepicker({ 
    minDate: +1, 
    maxDate: +30, 
    dateFormat: "d/M", 
    timeFormat: 'hh:mm', 
    hourMin: 11, 
    hourMax: 19, 
    hourGrid: 4, 
    minuteGrid: 10, 
    stepMinute: 5, 
    separator: ' @ '}); 
} 

回答

1

我覺得我說得對,唯一的區別是minDate財產。這很容易與三元表達式使用conditional operator有條件地設置這樣的:

$('#datepicker').datetimepicker({ 
minDate: (new Date().getHours() > 15 ? +2 : +1), 
maxDate: +30, 
dateFormat: "d/M", 
timeFormat: 'hh:mm', 
hourMin: 11, 
hourMax: 19, 
hourGrid: 4, 
minuteGrid: 10, 
stepMinute: 5, 
separator: ' @ '}); 
0

這裏是你的代碼。

var currentTime = new Date() 
var hours = currentTime.getHours() 
var minutes = currentTime.getMinutes() 
if(hours > 15){ 
    //document.write("too late buster!") 
    $('#datepicker').datetimepicker({ 
    minDate: +2, 
    maxDate: +30, 
    dateFormat: "d/M", 
    timeFormat: 'hh:mm', 
    hourMin: 11, 
    hourMax: 19, 
    hourGrid: 4, 
    minuteGrid: 10, 
    stepMinute: 5, 
    separator: ' @ '}); 
} else { 
    $('#datepicker').datetimepicker({ 
    minDate: +1, 
    maxDate: +30, 
    dateFormat: "d/M", 
    timeFormat: 'hh:mm', 
    hourMin: 11, 
    hourMax: 19, 
    hourGrid: 4, 
    minuteGrid: 10, 
    stepMinute: 5, 
    separator: ' @ '}); 
} 

這裏是優雅(至少更優雅)

var currentTime = new Date() 
var hours = currentTime.getHours() 
var minutes = currentTime.getMinutes() 
var options = { 
    minDate: +1, 
    maxDate: +30, 
    dateFormat: "d/M", 
    timeFormat: 'hh:mm', 
    hourMin: 11, 
    hourMax: 19, 
    hourGrid: 4, 
    minuteGrid: 10, 
    stepMinute: 5, 
    separator: ' @ ' 
} 
if (hours > 15) { 
    options.minDate = +2 
} 

然後當然通過選項進入timepicker