2016-05-16 54 views
2

我使用剑道时间选取器在UI上显示时间。小部件提交时间以下列格式 Mon May 16 2016 01:00:00 GMT-0500 (Central Daylight Time)将JavaScript日期时间转换为C时解析错误#

我跟着文章here到datetime转换成净DateTime对象 但是我得到的错误在解析

{“字符串未被识别为一个有效的日期时间。“}

一旦日期被解析,我想将它转换为UTC并将时间部分存储到数据库中。

[HttpPost] 
    public ActionResult Save(MyModel model) 
    {     
     // getting error at line below while parsing  
     DateTime dt = DateTime.ParseExact(model.SelectedTimeString.Substring(0,33), 
         "ddd MMM d yyyy HH:mm:ss GMT-zzzz", 
         CultureInfo.InvariantCulture);   

     var utcTime = dt.ToUniversalTime().TimeOfDay; 

     // store utcTime in database here 

     return View("Index", model); 
    } 

CSHTML

@using (@Html.BeginForm("Save", "Home")) 
    { 
     <div class="row"> 
      <div class="col-lg-6"> 
       @(Html.Kendo().TimePickerFor(x => x.SelectTime).Events(e => e.Change("changeDate")))   
       @Html.HiddenFor(x=>x.SelectedTimeString)   
      </div> 
     </div> 
     <button type="submit">Save</button> 
    } 

的JavaScript

<script type="text/javascript"> 
     function changeDate() {  
      var kendoDate = $('#SelectTime').getKendoTimePicker();  
      $('#SelectedTimeString').val(kendoDate.value()); 
     } 
    </script> 
+0

在浏览器中将其转换为UTC将非常容易....(并且已显示您已链接的问题) –

+0

那么,如何将javascript日期字符串转换为UTC格式 – LP13

回答

0

下面将返回一个日期对象或null如果日期选取器为空白或值无效:

var data = $('#SelectTime').data('kendoDatePicker').value(); 

您可以通过将其分配给变量并执行data.getFullYear()来对其进行测试。之后,你可以使用:

var dataAsJsonString = JSON.stringify(data); 

这将返回一个UTC日期,作为一个字符串,它看起来像这样: “2011-10-10T05:00.000Z”

下面是一个例子小提琴:http://jsfiddle.net/MadCodeMonkey/191a7c53/