2016-05-16 12 views
2

私は剣道時間ピッカーを使用してUIに時間を表示しています。ウィジェットは javascript datetimeをC#に変換中に解析エラーが発生しました

を解析中に、私はエラーを取得していますが。ネットのdatetimeオブジェクト に日時を変換する記事 hereを追っ Mon May 16 2016 01:00:00 GMT-0500 (Central Daylight Time)

次の形式で時間を提出{ "文字列は次のように認識されませんでした有効な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に変換するのですか? – 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/

関連する問題