首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WDDX的最低日期

WDDX的最低日期
EN

Stack Overflow用户
提问于 2014-07-11 22:50:23
回答 2查看 167关注 0票数 2

我最近让一个用户输入了6/13/204的数据。Server 2008愉快地存储了日期。该日期随后被检索并序列化到WDDX。它被编码为

代码语言:javascript
复制
<field name='BASECYCLEDATE'><dateTime>204-6-13T0:0:0-8:0</dateTime></field>

稍后,当我反序列化它时,我会得到

代码语言:javascript
复制
 WDDX packet parse error at line 1, column 8772.. 

 Invalid date string 204-6-13T0:0:0-8:0.   

..。

代码语言:javascript
复制
614 :   </cfscript>
615 :   
616 :   <cfwddx action = "wddx2cfml" input = "#qryLabel.Config#" output = "stDat">

我的问题是,在WDDX中反序列化日期的最低日期是多少?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-18 00:52:28

编辑:

要回答原来的问题,编码的字符串是错误的。序列化日期应该采用ISO8601格式,这意味着它们应该有四位数的年份。粗略的测试表明,cfwddx拒绝任何非四位数的年份,即年份< 1000或> 9999.

Server将日期存储为0204。

不,sql server不将日期存储为格式化字符串。在内部,它们被存储为数字。忽略验证片刻,原因是严格地在CF方面。当将该日期序列化为wddx字符串时,CF无法生成ISO8601所需的前导零。因此,生成的字符串204-6-13T0:0:0-8:0格式错误,这就是反序列化失败的原因。尽管如此,由于该日期范围对您的应用程序无效,您可能应该添加一些验证,以拒绝类似的无效值。

票数 0
EN

Stack Overflow用户

发布于 2014-07-12 21:19:06

Server将日期存储为0204。显然,ColdFusion将0204转换为204。如果用户开始经常这样做,我将为输入的数据添加一个额外的检查。如果有必要,我会

代码语言:javascript
复制
 <cfif year(basecyledate) LT 1000>
     ...
 </cfif>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24707765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档