Kendo DateTimePicker устанавливает текущий час 00:00 вместо DateTime.Now

Как видно из DateTimePicker/базового использования, пример, который я использовал ниже устанавливает текущий час 00:00 вместо DateTime.Now при нажатии на ссылку в нижнем колонтитуле DateTimePicker. Как это исправить?

@(Html.Kendo().DateTimePickerFor(m => m.VisitDate)
    .Animation(true)
    .Format("dd/MM/yyyy HH:mm")
    .TimeFormat("HH:mm")
    .Min(new DateTime(1900, 1, 1)) 
    .Max(new DateTime(2099, 12, 31)) 
    .Footer(true)
    .Value(DateTime.Now) 
)

До:
До
После:
После< /а>

Ссылка вставляет полночь, но это кажется неправильным.

Как сделать так, чтобы вместо этого вставлялось текущее время?


Обновление: вот методы DateTimePicker и javascript, которые я использовал на последнем шаге:

@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";
    var today = DateTime.Now.ToString("dd/MM/yyyy 00:00", 
                    new System.Globalization.CultureInfo("en-US"));
}


@(Html.Kendo().DateTimePicker()
    .Name("datetimer")
    .Animation(true)
    //.Culture("en-US")
    .TimeFormat("HH:mm")
    .Min(new DateTime(1900, 1, 1)) 
    .Max(new DateTime(2099, 12, 31)) 
    .Value(DateTime.Now)
    .Format("dd/MM/yyyy HH:mm")
    .Events(e => e.Change("datetimepicker_change"))
)


<script>
function datetimepicker_change() {
    // I use this method so that when selecting another day except from today, 
    // the hour should be 00:00. But it does not make sense whether or not using it 
    if ($('#datetimer').val() != '@today') {
        return;
    }


    if ($('#datetimer').val() == '@today') {
        $('#datetimer').val('@DateTime.Now.ToString("dd/MM/yyyy HH:mm")');
    }
}
</script>

comment
@buffjape Большое спасибо за редактирование. Любая помощь, пожалуйста?   -  person Jack    schedule 18.12.2015
comment
Извините, я понятия не имею, как это исправить, но это отличный вопрос.   -  person    schedule 18.12.2015


Ответы (1)


Здравствуйте, вот как я справляюсь с этим;

var today = DateTime.Now.ToString("dd/MM/yyyy 00:00", new System.Globalization.CultureInfo("en-US"));

@(Html.Kendo().DateTimePicker()
    .Name("test")
    .Animation(true)
    .TimeFormat("HH:mm")
    .Min(new DateTime(1900, 1, 1))
    .Max(new DateTime(2099, 12, 31))
    .Value(DateTime.Now)
    .Format("dd/MM/yyyy HH:mm")
    .Events(e => e.Change("datetimepicker_change"))
 )

 <script>
  function datetimepicker_change() {
    if ($('#test').val() == '@today') {
        $('#test').val('@DateTime.Now');
    }
  }
 </script>

полный код через VS 2015

результат: youtube

person Zergling    schedule 21.12.2015
comment
Я сталкиваюсь с SyntaxError:missing ) после списка аргументов: $('#test').val(23/12/2015 16:46:00); Обратите внимание, что это проект MVC, и я использую этот метод на странице Razor. Я удалил некоторый знак ', но на этот раз я получаю сообщение об ошибке выше. Есть идеи? Вы можете протестировать его на dojo.telerik.com. - person Jack; 23.12.2015
comment
этот код, который я создаю с синтаксисом бритвы, уже просто делаю его, как я - person Zergling; 23.12.2015
comment
Извините, но для каждого случая я встречаю ошибку (compliation и т.д.). Я определил сегодня переменную непосредственно перед DateTimePicker и datetimepicker_change() после DateTimePicker. Я также пытался определить их в тегах ‹script›...‹script›, но все равно ошибка. Не могли бы вы обновить ответ? Вы также можете использовать Telerik Dojo. Спасибо... - person Jack; 23.12.2015
comment
@Christof Я не могу использовать кендо mvc в додзё, поэтому все, что вам нужно, здесь. обновлено; Я записываю это, а также смотрите ссылку в конце. - person Zergling; 23.12.2015
comment
Как насчет установки часа 00:00 при выборе другого дня (кроме сегодняшнего)? Потому что при выборе другого дня час остается таким же, как последний выбранный час и минута. Есть идеи? - person Jack; 23.12.2015
comment
Хорошо, я нашел это. В этом случае мы добавляем эту строку перед первым условием if: if ($('#test').val() != '@today') { return; } - person Jack; 23.12.2015
comment
Но это не работает должным образом. Если у вас есть время, не могли бы вы попробовать это условие, выбрав сегодня, а затем выбрав другую дату и т. д. После первой работы оно сохранит предыдущее время и не изменится. Есть идеи? - person Jack; 23.12.2015
comment
Я поработаю над этим завтра на работе, сейчас у меня нет библиотеки кендо mvc. - person Zergling; 23.12.2015
comment
это работает хорошо, я просто продолжаю переключать даты, результат тот же, все работает - person Zergling; 24.12.2015
comment
Сценарий такой: 1) Первое значение времени 24.12.2015 10:01. 2) При выборе другой даты кроме сегодняшней тоже все ок › 23.12.2015 00:00. 3) Но при повторном выборе сегодня значение равно 24/12/2015 00:00, тогда как должно быть 24/12/2015 10:01. Есть идеи? - person Jack; 24.12.2015
comment
Вы выбираете сегодня в нижнем колонтитуле на третьем шаге? - person Zergling; 24.12.2015
comment
Да, в обоих случаях (выбор по нижнему колонтитулу или по номеру дня) результат такой же, как я описал выше. - person Jack; 24.12.2015
comment
Можешь посмотреть это, для меня нет проблем. youtube.com/watch?v=r7micL2MBYM&feature=youtu.be - person Zergling; 24.12.2015
comment
удалите эту строку, если ($('#datetimer').val() != '@today') {return;} - person Zergling; 24.12.2015
comment
Как я указал в строке, это не имеет смысла и при выборе другой даты час такой же, как последний выбранный час т.е. 11:30) вместо 00:00. Я думаю, что это может быть проблема версии Кендо, но если у вас есть идея изменить час выбранной даты на 00:00, я могу подать заявку. Если нет, то я не хочу тратить ваше время намного больше. Потому что вы уже решили проблему и доказали это. Спасибо... - person Jack; 24.12.2015