JQuery datepicker - изменить "сегодняшнюю" дату?
Есть ли способ изменить "сегодняшнюю" дату в jquery.ui datepicker?
Сегодня я имею в виду сегодня (class= "ui-datepicker-today" ), а не minDate или текущую дату!
Я понял, что datepicker использует системное время для значений по умолчанию. Теперь я получаю текущую дату с моего сервера и устанавливаю ее в мой minDate. Но я не нашел способ установить сегодняшнюю дату...
Он по-прежнему использует мою системную дату (есть некоторые пользователи, чья системная дата находится в 2000 году или ранее).
Может ли помочь мне PLZ?
Ответы
Ответ 1
На основе source он выглядит не очень хорошо.
var today = new Date();
Это всегда будет дата системы пользователя.
Если вы абсолютно должны это исправить, посмотрите вниз по строке; вы можете переопределить $.datepicker._daylightSavingAdjust
и вернуть дату со своего сервера *
Но это плохая идея. Почему у ваших пользователей системная дата так запутана? Почему это ваша проблема? Если они жалуются, скажите им исправить свои часы.
* Я не могу подчеркнуть, насколько это плохо. Эта функция используется для нормализации большинства дат в datepicker, поэтому вам придется написать некоторую довольно запутанную логику, чтобы не испортить все. Это может быть даже невозможно.
Ответ 2
Небольшое исправление выбранного ответа в jQuery UI DatePicker change подсвечивается "сегодня" дата
// Get users 'today' date
var localToday = new Date();
localToday.setDate(tomorrow.getDate()+1); // tomorrow
// Pass the today date to datepicker
$( "#datepicker" ).datepicker({
showButtonPanel: true,
localToday: localToday // This option determines the highlighted today date
});
Я переопределил 2 метода datepicker, чтобы условно использовать новый параметр для "сегодняшней" даты вместо new Date()
. Новая настройка называется localToday
.
Переопределить $.datepicker._gotoToday
и $.datepicker._generateHTML
следующим образом:
$.datepicker._gotoToday = function(id) {
/* ... */
var date = inst.settings.localToday || new Date()
/* ... */
}
$.datepicker._generateHTML = function(inst) {
/* ... */
tempDate = inst.settings.localToday || new Date()
/* ... */
}
Здесь demo, который показывает полный код и использование: http://jsfiddle.net/NAzz7/5/
Ответ 3
Вы хотите установить дату по умолчанию, когда открывается jQuery UI Datepicker?
Если да, то датпикер имеет option, чтобы вы могли установить это.