Пока я понимаю, Pikaday является датой выбора, а не время выбора даты & даже он возвращает стандартный Javascript Числа: объекта, который, по сути, работает с полными отметками времени.
Даты просто представлены его меткой времени в 0: 00h (или 12:00 pm).
Поскольку pikaday использует стандартный код JavaScript Дата объект, вы можете указать любую допустимую строку форматирования, даже если она включает в себя время дня части, но Вы можете выбрать в течение нескольких дней, так что вы всегда будете получать его 0: 00h метку времени ,
Если вы хотите выбрать дату и время, вам необходимо выполнить поиск другого объекта или реализовать его самостоятельно (например, используя pikaday и jquery timepicker).
Надеется, что это помогает ...
EDIT: Как я уже сказал Om комментарии, вы можете реализовать его самостоятельно, как два sepparated полея, работающих в качестве одного.
Здесь jsfiddle пример: https://jsfiddle.net/L82h4x1y/
$(".datepicker").each(function(index){
var container = $("<span></span>");
var dateFld = $("<input type=\"date\"></input>")
.attr("placeholder", "dd/mm/yyyy")
.appendTo(container)
;
var timeFld = $("<input type=\"time\"></input>")
.attr("placeholder", "h:mm [pm|am]")
.appendTo(container)
;
var target = $(this) // Original input field.
.replaceWith(container) // Replace it in DOM.
.appendTo(container) // Reinsert inside new container.
.hide() // Hide it (HINT: comment out me to debug).
;
var picker = new Pikaday({
field: dateFld[0],
//format: "D/M/YY hh:mm A"
format: "D/M/YY"
});
function updateFld(){
// Calculate date part:
// --------------------
try {
var d = new Date(dateFld.val());
if (isNaN(d)) throw "Wrong date";
} catch (e) {
var d = new Date(); // Use current day on invalid values.
};
d = d.getDate()
+"/"+(d.getMonth()+1) // "+1" fixes .getMongh() counting from 0.
+"/"+d.getFullYear()
;
// Calculate time part:
// --------------------
try {
var t = new Date(
"2000/1/1 " // Prepend some valid date (notice the ending space).
+timeFld.val()
);
if (isNaN(t)) throw "Wrong time";
} catch (e) {
var t = new Date("2000/1/1 0:0"); // Use 0:00 on invalid values
};
t = t.getHours() // 0-23
+":"+t.getMinutes();
// Update target field:
// --------------------
//
target.val(d+" "+t);
// NOTE: You will receive 24h date. If you really need "am/pm" you
// should do a few more plumbing.
};
dateFld.on("change", updateFld);
timeFld.on("change", updateFld);
});
Соответствующие примечания:
Обратите внимание, что дополнительные поля ввода does'nt есть какие-либо "имя" атрибуты, так что единственное поле который будет отправлен на отправку, будет оригинальным.
Поле времени принимает am/pm или 24h (любой действительный javascript Дата времени объекта), но исходное поле будет всегда заполнено стандартной датой/временем (24 часа). Если это не то, что вы хотите, тогда вам нужно сделать еще несколько сантехнических работ.
Как уже говорилось, вы также можете добавить плагин timepicker к полю времени (я еще не сделал).
Для лучшего тестирования в jsfiddle закомментируйте строку «.hide()» исходного поля. Таким образом, вы можете увидеть эффект в реальном времени.
Я думаю, что должен быть селектор для hh: mm тоже, я вижу только селектор дня – Francesco