2012-01-17 12 views
1

私はjavascriptとjQueryの新機能ですが、Trent RichardsonのjQuery Timepicker、http://trentrichardson.com/examples/timepicker/を入手できました。if statement in jQuery timepicker

ユーザーが選択できる日付を制限するための制約を追加しましたが、現在の時間に基づいてこれらの制限を変更する必要があります。現在の時刻が午後3時より前の場合は1日を追加し、午後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財産であることを言っているんだと思います。

$('#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

はここにあなたのコードです:それはconditional operator使用して三元式で条件付きでこれを設定するのは簡単です。ここ

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: ' @ '}); 
} 

そしてもちろんtimepicker

にオプションを渡す

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 
} 

(少なくともよりエレガント)エレガント