我已将项目从2013.3.1119更新到2013.3.1324版本(使用ASP.NET MVC包装器)
我在更新后看到以下内容:
DateTime以
"/Date(-498283200000)/"
如果不到1970年和
"/Date(498283200000)/"
如果超过1970年
我在 kendo.all.js 文件中找到了一个奇怪的代码
dateRegExp = /^\/Date\((.*?)\)\/$/,
tzOffsetRegExp = /[+-]{1}\d+/,
...
if (value && value.indexOf("/D") === 0) {
date = dateRegExp.exec(value);
if (date) {
date = date[1];
tzoffset = tzOffsetRegExp.exec(date);
date = parseInt(date, 10);
if (tzoffset) {
date -= (parseInt(tzoffset[0], 10) * kendo.date.MS_PER_MINUTE);
}
return new Date(date);
}
}
调试信息:
初始值:
解析日期值:
解析tzo值:
最后,结果日期值:
其实我不需要时间,只需要日期。模型属性类型是常规DateTime。 此外,我在剑道网站上找不到此版本的任何问题。
我做错了什么,我需要做什么? (改变剑道源不是我认为的选择......)
示例:
答案 0 :(得分:0)
以下内容:
alert(kendo.parseDate("/Date(-498283200000)/"))
显示
Thu Mar 18 1954 22:00:00 GMT+0200 (FLE Standard Time)
使用最新的官方版Kendo UI。
确保您没有使用旧版本。
这是一个现场演示:http://jsbin.com/vebed/1/edit
答案 1 :(得分:0)
问题已在内部版本2013.3.1408中修复
新代码是:
if (value && value.indexOf("/D") === 0) {
date = dateRegExp.exec(value);
if (date) {
tzoffset = date = date[1];
date = parseInt(date, 10);
tzoffset = tzoffset.substring(1).split(signRegExp)[1];
if (tzoffset) {
date -= (parseInt(tzoffset, 10) * kendo.date.MS_PER_MINUTE);
}
return new Date(date);
}
}