0

Я использую Bootstrap 3 DateTime picker from here. При загрузке формы Razr я хочу установить время по умолчанию как текущую метку времени UtcNow.Как назначить свойство UtcNow атрибуту DateTime?

Я попытался использовать различные форматы DateTime, чтобы установить это значение по умолчанию. . Но контроль, кажется, не принимает форматы, принятые в

Некоторые из форматов пробовали:

//Format #1 
DateTime.UtcNow.ToString("yyyyMMddHHmmtt"); 

//Format #2 
string.Format("{0:g}", DateTime.UtcNow); 

Я знаю, что формат, используемый сборщик DateTime при выборе время выглядит следующим образом, 07/13/2016 2:43 AM , поэтому я думаю, что если я смогу преобразовать время UTC в этот формат, он примет отметку времени.

Я проверил, что я могу присвоить это значение регулярному элементу ввода с тем же синтаксисом Razr, чтобы исключить проблему, когда значение не передается.

Вопрос:

Как вы можете присвоить UtcNow свойству значения по умолчанию DateTime сборщика?

Контроллер: В контроллере я передаю string.Format("{0:g}", DateTime.UtcNow); в качестве свойства модели.

//Create a dynamic object to store list of different model types. 
dynamic dynamicEscalationModel = new ExpandoObject(); 
dynamicEscalationModel.OutageStartTime = string.Format("{0:g}", DateTime.UtcNow); 

Вид: Затем я использую @ символ присвоить это значение сборщика DateTime:

<!-- Outage Start --> 
<div class="form-group"> 
    <label class="col-md-9 control-label" style="text-align: left;" for="OutageStartDisplay">Outage Start (*UTC)</label> 
    <div class="col-md-9"> 
     <div class='input-group date' id='OutageStartDisplay'> 
      <input type='text' class="form-control" id="OutageStartDisplayInput" name="OutageStartDisplayInput" value="@Model.OutageStartTime" /> 
      <span class="input-group-addon" id="OutageStartDisplayCalendar"> 
       <span class="glyphicon glyphicon-calendar"></span> 
      </span> 
     </div> 
    </div> 
</div> 

Для тестирования я добавил второй нормальный вход и свойство модели связан правильно:

<input type='text' class="form-control" id="" name="" value="@Model.OutageStartTime" /> 

DateTimePicker INIT в моем теге сценария:

//Init the Outage Start date time picker 
$(function() { 
    $('#OutageStartDisplay').datetimepicker({ 
    }); 
}); 

ответ

2

Поскольку вы получаете UTC сейчас, почему бы не сделать это со стороны клиента непосредственно:

<script type="text/javascript"> 
     $(function() { 
      var t = new Date(); 
      t.setMinutes(t.getMinutes() + t.getTimezoneOffset()); 

      $('#OutageStartDisplay').datetimepicker({ 
       defaultDate: t, 
      }); 
     }); 
    </script> 
+0

Я пробовал новую Date(). GetTime(), и он дает мне местный часовой пояс, а не UTC. Любые другие идеи? –

+0

Посмотрите, что вы имеете в виду. Ответ обновлен. –

1

Добавить это тег сценария Вы должны инициализировать его там:

 $('#OutageStartDisplay').datetimepicker({ 
     format: 'm/d/Y H:i:s', 
     theme: 'dark', 
     startDate: '@Model.OutageStartTime' 
    }); 
+0

Добавление формата и startDate разрывает сборщик, поскольку он не может быть выбран, но установлен параметр DateTime. Ошибка консоли: «bootstrap-datetimepicker.min.js: 8 Uncaught TypeError: опция startDate не распознана» –

Смежные вопросы