JSON.stringify后,日期时间改变 typescriptJavascriptC#JSON.stringifyASP 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最近Google又被封了,百度又不给力 调用JSON.stringify前,你将对象转为字符就好了sList.SpecialDate=sList.SpecialDate.toString();/////var da=....你原来的代码 我明白你的意思,是把Date()转换成String类型来避免其把日期转换把?但是,我定义的SpecialDate是Date类型, export interface SpecialCalerendar { ID: number; FacilityID: number; SpecialType: number; SameAsNormalWorkDay: boolean; SpecialDate: Date; StartHour :number; EndHour: number; IsOT :boolean; Description: string; UpdateUser : string; UpdateDate : Date; }如果改成String会比较麻烦,因为很多地方需要用到日期的比较,判断,排序等,如果现在改成string,有几十个文件要改了。但是你的方法可行! 本帖最后由 showbo 于 2014-06-10 17:32:04 编辑 json 不支持日期对象,改用毫秒吧 . 我明白你的意思,是把Date()转换成String类型来避免其把日期转换把?但是,我定义的SpecialDate是Date类型, export interface SpecialCalerendar { ID: number; FacilityID: number; SpecialType: number; SameAsNormalWorkDay: boolean; SpecialDate: Date; StartHour :number; EndHour: number; IsOT :boolean; Description: string; UpdateUser : string; UpdateDate : Date; }如果改成String会比较麻烦,因为很多地方需要用到日期的比较,判断,排序等,如果现在改成string,有几十个文件要改了。但是你的方法可行!不用改的啊。。JSON.stringify最后转换日期对象为成字符串后也是以字符串传递,并不是Date对象,ajax传递不了对象的,都要转为字符串如var d={d:new Date()};var s=JSON.stringify(d);//其实s的内容就是 {"d":"你的时间字符串"}只是你提前调用了toString转为需要的格式,而不是JSON.stringify帮你转换的格式项目用的是typescript,属于强类型,也就是说,传进来的list 已经是一个Date的对象了,假如,我要把list 的每一个object的specialDate再转换一次,那工程不是一般的大;下面的代码就是list中的每一个object的属性,[code=typescript] export interface SpecialCalerendar { ID: number; FacilityID: number; SpecialType: number; SameAsNormalWorkDay: boolean; SpecialDate: Date; StartHour :number; EndHour: number; IsOT :boolean; Description: string; UpdateUser : string; UpdateDate : Date; }[/code]另外,也不知道客户端会不会有影响,因为我几乎把所有验证逻辑都写在客户端,服务器几乎不验证,减少服务器的负荷。我希望的是重写JSON.stringify 方法、 这个也是一个解决方法,但是,和版主的一样,typescript是强类型,在实体类中,已经把specialDate定义为Date类型,要改实体类的属性不科学 我明白你的意思,是把Date()转换成String类型来避免其把日期转换把?但是,我定义的SpecialDate是Date类型, export interface SpecialCalerendar { ID: number; FacilityID: number; SpecialType: number; SameAsNormalWorkDay: boolean; SpecialDate: Date; StartHour :number; EndHour: number; IsOT :boolean; Description: string; UpdateUser : string; UpdateDate : Date; }如果改成String会比较麻烦,因为很多地方需要用到日期的比较,判断,排序等,如果现在改成string,有几十个文件要改了。但是你的方法可行!不用改的啊。。JSON.stringify最后转换日期对象为成字符串后也是以字符串传递,并不是Date对象,ajax传递不了对象的,都要转为字符串如var d={d:new Date()};var s=JSON.stringify(d);//其实s的内容就是 {"d":"你的时间字符串"}只是你提前调用了toString转为需要的格式,而不是JSON.stringify帮你转换的格式项目用的是typescript,属于强类型,也就是说,传进来的list 已经是一个Date的对象了,假如,我要把list 的每一个object的specialDate再转换一次,那工程不是一般的大;下面的代码就是list中的每一个object的属性,[code=typescript] export interface SpecialCalerendar { ID: number; FacilityID: number; SpecialType: number; SameAsNormalWorkDay: boolean; SpecialDate: Date; StartHour :number; EndHour: number; IsOT :boolean; Description: string; UpdateUser : string; UpdateDate : Date; }[/code]另外,也不知道客户端会不会有影响,因为我几乎把所有验证逻辑都写在客户端,服务器几乎不验证,减少服务器的负荷。我希望的是重写JSON.stringify 方法、你服务器端接受到的也就是 {"d":"你的时间字符串"},也是字符串,不是时间类型,只是你动态页给自动转换成了Date类型而已,这个和服务器无关,你客户端转成的时间格式的字符串符合你的Date类型可以转换的格式就行了。这个不是在服务器端之间的参数的传递,类型一定要完全一样 json 就是字符串嘛。你别为难它啦。你说的对,自己写一个序列化和反序列化的方法去处理比较妥当。不过一般上后端都有写好的组建可以处理日期格式的。p.s 前端的验证是不太靠谱的,因为js 容易被更改。 如果重要文件还是在后端再验证一次较为妥当。 我也是想重写json的 原本以为要重写typescript接口 后来发现不用,那么处理起来就容易了,修改stringify的逻辑就可以了。后端是有验证的,不过只是简单验证,为的就是减轻服务器的负荷 诡异的JS,已经计划系统关机错误 求正确的radio个数算法!为什么算radio个数是1的时候,出错:underfined 弹出窗口问题 怎么获取别人网站的JavaScript代码 关于escape转换参数的小问题 请问如何理解下面的继承语法结构? javascript中this的用法 关于一个最简单的输入限制 请问parent.window.location.href=""的使用? 在一个iframe里如何调用另一个iframe里的js function ??????????? 图片滑动切换 jquery mobile做的滑动和点击效果为何在华为手机上失效
var da=....你原来的代码
我明白你的意思,是把Date()转换成String类型来避免其把日期转换把?但是,我定义的SpecialDate是Date类型, export interface SpecialCalerendar {
ID: number;
FacilityID: number;
SpecialType: number;
SameAsNormalWorkDay: boolean;
SpecialDate: Date;
StartHour :number;
EndHour: number;
IsOT :boolean;
Description: string;
UpdateUser : string;
UpdateDate : Date;
}如果改成String会比较麻烦,因为很多地方需要用到日期的比较,判断,排序等,如果现在改成string,有几十个文件要改了。但是你的方法可行!
我明白你的意思,是把Date()转换成String类型来避免其把日期转换把?但是,我定义的SpecialDate是Date类型, export interface SpecialCalerendar {
ID: number;
FacilityID: number;
SpecialType: number;
SameAsNormalWorkDay: boolean;
SpecialDate: Date;
StartHour :number;
EndHour: number;
IsOT :boolean;
Description: string;
UpdateUser : string;
UpdateDate : Date;
}如果改成String会比较麻烦,因为很多地方需要用到日期的比较,判断,排序等,如果现在改成string,有几十个文件要改了。但是你的方法可行!
不用改的啊。。JSON.stringify最后转换日期对象为成字符串后也是以字符串传递,并不是Date对象,ajax传递不了对象的,都要转为字符串如
var d={d:new Date()};
var s=JSON.stringify(d);//其实s的内容就是 {"d":"你的时间字符串"}只是你提前调用了toString转为需要的格式,而不是JSON.stringify帮你转换的格式项目用的是typescript,属于强类型,也就是说,传进来的list 已经是一个Date的对象了,假如,我要把list 的每一个object的specialDate再转换一次,那工程不是一般的大;
下面的代码就是list中的每一个object的属性,
[code=typescript]
export interface SpecialCalerendar {
ID: number;
FacilityID: number;
SpecialType: number;
SameAsNormalWorkDay: boolean;
SpecialDate: Date;
StartHour :number;
EndHour: number;
IsOT :boolean;
Description: string;
UpdateUser : string;
UpdateDate : Date;
}
[/code]
另外,也不知道客户端会不会有影响,因为我几乎把所有验证逻辑都写在客户端,服务器几乎不验证,减少服务器的负荷。
我希望的是重写JSON.stringify 方法、
我明白你的意思,是把Date()转换成String类型来避免其把日期转换把?但是,我定义的SpecialDate是Date类型, export interface SpecialCalerendar {
ID: number;
FacilityID: number;
SpecialType: number;
SameAsNormalWorkDay: boolean;
SpecialDate: Date;
StartHour :number;
EndHour: number;
IsOT :boolean;
Description: string;
UpdateUser : string;
UpdateDate : Date;
}如果改成String会比较麻烦,因为很多地方需要用到日期的比较,判断,排序等,如果现在改成string,有几十个文件要改了。但是你的方法可行!
不用改的啊。。JSON.stringify最后转换日期对象为成字符串后也是以字符串传递,并不是Date对象,ajax传递不了对象的,都要转为字符串如
var d={d:new Date()};
var s=JSON.stringify(d);//其实s的内容就是 {"d":"你的时间字符串"}只是你提前调用了toString转为需要的格式,而不是JSON.stringify帮你转换的格式项目用的是typescript,属于强类型,也就是说,传进来的list 已经是一个Date的对象了,假如,我要把list 的每一个object的specialDate再转换一次,那工程不是一般的大;
下面的代码就是list中的每一个object的属性,
[code=typescript]
export interface SpecialCalerendar {
ID: number;
FacilityID: number;
SpecialType: number;
SameAsNormalWorkDay: boolean;
SpecialDate: Date;
StartHour :number;
EndHour: number;
IsOT :boolean;
Description: string;
UpdateUser : string;
UpdateDate : Date;
}
[/code]
另外,也不知道客户端会不会有影响,因为我几乎把所有验证逻辑都写在客户端,服务器几乎不验证,减少服务器的负荷。
我希望的是重写JSON.stringify 方法、你服务器端接受到的也就是 {"d":"你的时间字符串"},也是字符串,不是时间类型,只是你动态页给自动转换成了Date类型而已,这个和服务器无关,你客户端转成的时间格式的字符串符合你的Date类型可以转换的格式就行了。这个不是在服务器端之间的参数的传递,类型一定要完全一样
你说的对,自己写一个序列化和反序列化的方法去处理比较妥当。
不过一般上后端都有写好的组建可以处理日期格式的。p.s 前端的验证是不太靠谱的,因为js 容易被更改。 如果重要文件还是在后端再验证一次较为妥当。