2013-03-07 73 views
0

当从编码到数组时使用Kendo DatePicker和Date(-62135578800000)时,我有一个字符串日期值3/2/2013。我将一个Kendo数组绑定到一个模板,并希望该日期是用户友好的,如“Sat,Mar 2”。我曾尝试toString和ParseDate没有运气。我创建了一个小提琴,http://jsfiddle.net/srakestraw/Q3MF8/,但无法弄清楚我做错了什么。kendo.toString()MVVM绑定日期

当我加载页面时,使用Json.Encode获取Date(-62135578800000)等日期值,如下所示。

var viewModel = kendo.observable({ 
       slots: @Html.Raw(Json.Encode(Model.Slots)) 
       }); 

在前端,用户使用KendoUI日期选择器选择日期,然后将值推入数组。我是否使用错误的日期格式?

感谢您的任何帮助。

回答

1

问题是Date(-62135578800000)是不是一个有效的JavaScript Date对象:

alert(typeof Date(-62135578800000)); // string

这里是更新的jsfiddle:http://jsfiddle.net/Q3MF8/3/

+0

谢谢,我错过了parsedate。 – scottrakes 2013-03-07 18:00:41

+0

@AtanasKorchev,负面时间戳表示1970年1月1日之前的日期。看起来你比Unix更年轻;-) – OnaBai 2013-04-26 17:34:08

+0

@OnaBai我可能比Unix时代更年轻,但日期(-62135578800000)不是有效的JavaScript日期。试试看:var d = Date(-62135578800000); 提醒(四); //现在显示。 – 2013-04-27 13:19:18

0

这将格式化就可以一起工作的方式日期(ISO 8601)而不是那些可怕的Json.Encode格式化器怪物。

@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model))