LSDateFormat生成默认日期12/30/1899 ...如何修复?

时间:2011-05-31 15:36:53

标签: date coldfusion if-statement


我们的一个数据库设置了一个页面,用于打印包含各种地质信息的报告。有问题的数据库是一个FoxPro数据库,并包含一个日期字段,在FoxPro中格式化为mm / dd / yy。

报告表格中有一段代码

#LSDateFormat(qLithHead.drill_date, "mm/dd/yyyy")#

正在拉动drill_date并将其转换为请求的格式,并且在此过程中将获取所有1500条记录,没有钻取日期并添加默认的12/30/1899日期。

Boss不希望报告中的默认日期,但希望报告中的完整格式化日期(如果存在),因为它们确实有一些数据可以追溯到20世纪初,并且需要列出整个世纪

我正在尝试编写一个if / else语句,它将创建一个变量,d_date和store

 LSDateFormat(qLithHead.drill_date, "mm/dd/yyyy")

如果字段已填满, 否则,如果日期为空,它将存储空字符串“”。

<cfif (EMPTY(qLithHead.drill_date))>
     <cfset d_date=" ">
<cfelse>
     <cfset d_date=#LSDateFormat(qLithHead.drill_date, "mm/dd/yyyy")#>
</cfif>

然后在报告的日期区域中,我只需调用d_date变量,无论其值如何:

#d_date#

无论如何,这是我想要完成的一般想法。我完全不确定CF语法。

感谢您提供的任何帮助。

谢谢! :)

1 个答案:

答案 0 :(得分:1)

Coldfusion 9有一个isNull()函数,它返回一个布尔值:

<cfif isNull(qLithHead.drill_date)> 

http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSe9cbe5cf462523a0-3c4c0bb81223f1daffb-8000.html

或者,如果您没有运行CF9,可以尝试:

<cfif isDate(qLithHead.drill_date)>

<cfif Year(qLithHead.drill_date) EQ '1899'>

摆脱丑陋的时间戳