Вашего первые два вопроса довольно прямолинеен, но я не уверен в формате дату вы хотите, пример может помочь, но изменить его, просто измените строку для значения по умолчанию и dateFormat
опцию в datepicker
инициализация.
Я знаю, что это внешняя библиотека, но moment.js отлично подходит для общения с датами, продолжительностью и форматированием.
Ваш третий вопрос довольно сложный и, вероятно, должен быть его собственным вопросом о SO.
Следует отметить, что ваш datepicker
, по-видимому, дает только даты с завтрашнего дня, и я заполняю начальное значение сегодняшней датой, поэтому он отключен, не уверен, хотите ли вы, чтобы начальное значение было завтра или чтобы сегодня было Я не вижу, где сегодня отключено.
/** Days to be disabled as an array */
var disabledSpecificDays = ["12-25-2014", "12-31-2014"];
function disableSpecificDaysAndWeekends(date) {
var m = date.getMonth();
var d = date.getDate();
var y = date.getFullYear();
for (var i = 0; i < disabledSpecificDays.length; i++) {
if ($.inArray((m + 1) + '-' + d + '-' + y, disabledSpecificDays) != -1 || new Date() > date) {
return [false];
}
}
var noWeekend = $.datepicker.noWeekends(date);
return !noWeekend[0] ? noWeekend : [true];
}
/** init datepicker */
$(document).ready(function() {
// get today's date and format it
var today = new Date();
// zero pad the date and month incase they are less than 10
var dd = ("0" + today.getDate()).slice(-2);
var mm = ("0" + (today.getMonth() + 1)).slice(-2); // January is 0!
var yyyy = today.getFullYear();
var day_names = [
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
];
var month_names = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
];
var day_name = day_names[today.getDay()];
var month_name = month_names[today.getMonth()];
$('#datepicker').val(day_name + ', ' + dd + ' ' + month_name + ', ' + yyyy);
$('#datepicker').datepicker({
dateFormat: 'DD, d MM, yy',
beforeShowDay: disableSpecificDaysAndWeekends
});
});
http://jsfiddle.net/vdpzzms2/3/
Update
Это немного грязный и может быть сделано лучше через промежуточную функцию, которая заботится о логике или с помощью внешней библиотеки, но здесь вы идете (не принимаются во внимание выходные или инвалиды):
$('#datepicker').datepicker({
dateFormat: 'DD, d MM, yy',
beforeShowDay: disableSpecificDaysAndWeekends,
onSelect: function(date) {
// alert(date);
var selected_date = new Date(date);
var shipping_date = new Date(date);
shipping_date.setDate(shipping_date.getDate() + 4);
var delivery_date = new Date(date)
delivery_date.setDate(delivery_date.getDate() + 5);
var shipping_dd = ("0" + shipping_date.getDate()).slice(-2);
var shipping_mm = ("0" + (shipping_date.getMonth() + 1)).slice(-2); //January is 0!
var shipping_yyyy = shipping_date.getFullYear();
var shipping_day_name = day_names[shipping_date.getDay()];
var shipping_month_name = month_names[shipping_date.getMonth()];
var formatted_shipping_date = shipping_day_name + ', ' + shipping_dd + ' ' + shipping_month_name + ', ' + shipping_yyyy;
var delivery_dd = ("0" + delivery_date.getDate()).slice(-2);
var delivery_mm = ("0" + (delivery_date.getMonth() + 1)).slice(-2); //January is 0!
var delivery_yyyy = delivery_date.getFullYear();
var delivery_day_name = day_names[delivery_date.getDay()];
var delivery_month_name = month_names[delivery_date.getMonth()];
var formatted_delivery_date = delivery_day_name + ', ' + delivery_dd + ' ' + delivery_month_name + ', ' + delivery_yyyy;
$('#ShippingDate').val(formatted_shipping_date);
$('#DeliveryDate').val(formatted_delivery_date);
}
});
http://jsfiddle.net/vdpzzms2/7/
Спасибо Martin. Я отформатировал код, чтобы теперь было ясно. Вот ссылка http://jsfiddle.net/vdpzzms2/4/ Мартин, я хочу получить сегодняшнюю дату в переменной TodayDate, а затем добавить к ней 3 дня, а затем отобразить ее в текстовом поле с именем Дата доставки и то же самое в доставке Дата с добавлением 4 дней. Пожалуйста помоги. – Krishnam
@ Кришнам Я обновил ответ. – martincarlin87