Получить выбранные дату и время на KendoDateTimepicker
Я использую кендо DateTimepicker. У меня есть дата начала и окончания. Когда я выбираю начальную дату, я хочу, чтобы конечная дата создавалась на 30 минут больше, чем начальная дата. Например, если выбранная дата начала 5/11/2016 2:30 вечера, я хочу, чтобы дата окончания была 5/11/2016 3:00 вечера. Может кто-нибудь помочь мне с этим.
Спасибо
Код кендо:
<tr>
<td>
<div>
<label for="start_date" >Start Date</label>
</div>
<div data-container-for="data.start_date" onchange="startDate()">
<input data-role="datepicker" data-bind="value: data.start_date" id="startDate"/>
<input data-role="timepicker" data-bind="value: data.start_date" id="startTime"/>
</div>
</td>
<td>
<div>
<label for="end_date">End Date</label>
</div>
<div data-container-for="data.end_date">
<input data-role="datepicker" data-bind="value: data.end_date" id="endDate" />
<input data-role="timepicker" data-bind="value: data.end_date" id="endTime"/>
</div>
</td>
</tr>
Function:
function startDate() {
var startDate = kendo.toString($("#startDate").data("kendoDatePicker").value(), 'MM/dd/yyyy');
var startTime = kendo.toString($("#startTime").data("kendoTimePicker").value(), 'hh:mm tt')
var endtDate = kendo.toString($("#endDate").data("kendoDatePicker").value(), 'MM/dd/yyyy');
var endTime = kendo.toString($("#endTime").data("kendoTimePicker").value(), 'hh:mm tt')
var StartDate = new Date($("#startDate").val());
var futureDateTime = new Date(StartDate.setMinutes(StartDate.getMinutes() + 30));
var End = $("#endDate").data("kendoDatePicker").value(futureDateTime);
var EndTime = $("#endTime").data("kendoTimePicker").value(futureDateTime);
}
2 ответа
Решение
Пожалуйста, попробуйте с приведенным ниже фрагментом кода. При нажатии на кнопку вы получаете отдельную дату и время обоих сборщиков даты и времени.
<div>
<input id="startDate" />
<input id="endDate" />
<button onclick="GetDateAndTime();">Get date an time separatly</button>
<script>
function GetDateAndTime() {
var startDate = kendo.toString($("#startDate").data("kendoDateTimePicker").value(), 'MM/dd/yyyy');
var startTime = kendo.toString($("#startDate").data("kendoDateTimePicker").value(), 'hh:mm tt')
var endtDate = kendo.toString($("#endDate").data("kendoDateTimePicker").value(), 'MM/dd/yyyy');
var endTime = kendo.toString($("#endDate").data("kendoDateTimePicker").value(), 'hh:mm tt')
alert(startDate);
alert(startTime);
alert(endtDate);
alert(endTime);
}
$(document).ready(function () {
var tempDate = new Date();
$("#startDate").kendoDateTimePicker({
value: tempDate,
change: onchange
});
$("#endDate").kendoDateTimePicker({
value: tempDate,
});
$("#startDate").data("kendoDateTimePicker").trigger("change");
function onchange() {
var startDate = new Date($("#startDate").val());
var newDateTime = new Date(startDate.setMinutes(startDate.getMinutes() + 30));
$("#endDate").data("kendoDateTimePicker").value(newDateTime);
}
});
</script>
</div>
Дайте мне знать, если что-то беспокоит.
Ссылка это. Страница, которую вы вставили, все еще не совсем то, что я искал.
<!DOCTYPE html>
<html>
<head>
<base href="http://demos.telerik.com/kendo-ui/datepicker/index">
<style>html { font-size: 14px; font-family: Arial, Helvetica, sans-serif; }</style>
<title></title>
<link rel="stylesheet" href="//kendo.cdn.telerik.com/2016.2.504/styles/kendo.common-material.min.css" />
<link rel="stylesheet" href="//kendo.cdn.telerik.com/2016.2.504/styles/kendo.material.min.css" />
<script src="//kendo.cdn.telerik.com/2016.2.504/js/jquery.min.js"></script>
<script src="//kendo.cdn.telerik.com/2016.2.504/js/kendo.all.min.js"></script>
</head>
<body>
<div id="example">
<div class="demo-section k-content">
<h4>Start Date:</h4>
<input id="startDate" value="10/10/2011" style="width: 100%" />
<h4>End Date:</h4>
<input id="endDate" value="10/10/2011" style="width: 100%" />
</p>
</div>
<script>
$(document).ready(function() {
// current date
var currentDate = new Date();
// create DatePicker from input HTML element
$("#startDate").kendoDateTimePicker({
value: currentDate,
change: onStartDateChange
});
// Set new datetime 30 minutes ahead
var futureDateTime = new Date(currentDate.setMinutes(currentDate.getMinutes() + 30));
$("#endDate").kendoDateTimePicker({
// display month and year in the input
value: futureDateTime,
});
function onStartDateChange() {
//console.log("Change event :: " + kendo.toString(this.value()));
// Get start date
var startDate = new Date($("#startDate").val());
//console.log("Start date :: " + kendo.toString(startDate));
// Add 30 minutes
var futureDateTime = new Date(startDate.setMinutes(startDate.getMinutes() + 30));
//console.log("Future date :: " + kendo.toString(futureDateTime));
// Set time 30 minutes from now
$("#endDate").data("kendoDateTimePicker").value(futureDateTime);
}
});
</script>
</div>
</body>
</html>