Evi*_*mes 3 coldfusion date coldfusion-9
我正在使用ColdFusion 9.0.1和一些我无法改变的数据库.
我正在访问一个数据库,该数据库将日期存储为八位数字,零小数位,如下所示:
YYYYMMDD
Run Code Online (Sandbox Code Playgroud)
我需要能够读取日期,添加和减去日期的天数,并创建新的日期.我正在寻找一个ColdFusion解决方案,以有效(不多的代码)将日期转换为我们的标准格式,即
MM/DD/YYYY
Run Code Online (Sandbox Code Playgroud)
然后将其转换回数据库的格式以便保存.
我需要以这样的方式对此进行编码:非ColdFusion程序员可以轻松地读取并使用它,复制和修改它以用于其他功能(例如向日期添加一天).所以,我不是在寻找最少量的代码,而是高效可读的代码.
您能否提出任何可以使此代码块更灵活,更易读或更高效(更少代码)的内容?
<cfscript>
// FORMAT DB DATE FOR BROWSER
DateFromDB = "20111116";
DatedToBrowser = createBrowserDate(DateFromDB);
writeOutput(DatedToBrowser);
function createBrowserDate(ThisDate) {
ThisYear = left(ThisDate, 4);
ThisMonth = mid(ThisDate, 4, 2);
ThisDay = right(ThisDate, 2);
NewDate = createDate(ThisYear, ThisMonth, ThisDay);
NewDate = dateFormat(NewDate, "MM/DD/YYYY");
return NewDate;
}
// FORMAT BROWSER DATE FOR DB
DateFromBrowser = "11/16/2011";
DateToDB = createDBDate(DateFromBrowser);
writeDump(DateToDB);
function createDBDate(ThisDate) {
ThisYear = year(ThisDate);
ThisMonth = month(ThisDate);
ThisDay = day(ThisDate);
NewDate = "#ThisYear##ThisMonth##ThisDay#";
return NewDate;
}
</cfscript>
Run Code Online (Sandbox Code Playgroud)
首先找到谁曾经做过数据库,然后把他们踢进nad ......
我个人用sql转换所以我的代码只处理日期对象.
Select Convert(DateTime, Convert(VarChar(8),DateTimeInventedByIdjitColumn))
From SomeTable
Run Code Online (Sandbox Code Playgroud)
如我们的同行所述,将日期存储为日期.
'08/06/2011'可能是8月6日的8月8日,具体取决于当地情况.
20111643是一个有效的整数..
不使用正确的日期类型只是一大堆功能和错误,最多等待发生.
实际上,您可以将每个函数重写为1行代码.
function createBrowserDate(ThisDate) {
return mid(ThisDate,4,2) & "/" & right(ThisDate,2) & "/" & left(ThisDate,4);
}
Run Code Online (Sandbox Code Playgroud)
和
function createDBDate(ThisDate) {
return dateFormat( ThisDate, "YYYYMMDD" );
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2587 次 |
最近记录: |