驚艷於一個相容於ColdFusion,但是可免費商用的Railo,跌跌撞撞的研究過程,希望能有同好一起交流指教。

2011年1月7日 星期五

ColdFusion時間函數: 常用基本時間(日期)函數

建立時間變數:
‧Now() = {ts '2011-01-07 12:30:13'}
‧CreateDate(2011, 5, 1) = {ts '2011-05-01 00:00:00'}
‧CreateTime(1, 2, 3) = {ts '1899-12-30 01:02:03'}
‧CreateDateTime(2011,5,1,1,2,3) = {ts'2011-05-01 01:02:03'}
‧CreateODBCDate(now()) = {d '2011-02-01'}
‧CreateODBCTime('2011-1-2 03:04:05') = {t '03:04:05'}
‧CreateODBCDateTime(now()) = {ts '2011-02-01 16:23:02'}
‧ParseDateTime(‘2011-1-2 3:4:5') = {ts'2011-01-02 03:04:05'}
(將字串改成時間物件,括弧中可再加第二個變數’POP’代表格林威治時間,中間須用逗號相隔)

秀出時間變數
‧DateFormat(Now(), 'yyyy/mm/dd') = 2011/01/02
第一個變數須為時間變數,第二個變數可以任意參差d日期小於10者前面不補0、dd日期小於10者前面補0、ddd以英文簡寫顯示日期如Mon表星期一、dddd以英文全名顯示日期如Monday表星期一、m 月份小於10者前面不補0、Mm 月份小於10者前面補0、mmm以英文簡寫顯示月份如Feb表二月、mmmm以英文全名顯示月份如February表二月、y年份小於10者前面不補0、yy年份小於100者前面不補0、yyyy年份以四位數字顯示)
‧TimeFormat(Now(), 'HH:mm:sstt') = 03:04:05AM
第一個變數須為時間變數,第二個變數可以任意參差12小時制的h時數小於10者前面不補0、12小時制的hh日期小於10者前面補0、24小時制的H時數小於10者前面不補0、24小時制的HH時數小於10者前面補0、m分鐘小於10者前面不補0、mm時數小於10者前面補0、s秒數小於10者前面不補0、ss秒數小於10者前面補0、t秀出A或P代表上午或下午、tt秀出AM或PM代表上午或下午)

時間加減
‧DateAdd('d','2011-2-2','5') = {ts'2011-01-28 0:0:0'}
(加-5天,其中第一個參數可使用:yyyy年、q季、m月、y年中的天數、d天、w星期的天數、ww週數、h小時數、n分鐘數和s秒數)
‧DateDiff('d', '2011-2-2','2011-2-3') = 1(兩個日期相差天數,其中第一個參數可使用:yyyy年、q季、m月、y年中的天數、d天、w星期的天數、ww週數、h小時數、n分鐘數和s秒數)
‧DatePart('d', '2011-1-2') = 2(傳回時間變數中的日期,其中第一個參數可使用:yyyy年、q季、m月、y年中的天數、d天、w星期的天數、ww週數、h小時數、n分鐘數和s秒數)
‧DateCompare('2011-1-2', '2011-1-5') = -1(比較兩個日期誰先誰後,結果以-1和+1表示)
‧CreateTimeSpan(1,1,1,1) = 1.04237268519(將日期以浮點數表示,單位是天,四個參數依序是天數、小時、分鐘和秒鐘)

抓取時間變數值:
‧Year(Now()) = 2011(取年份數值)
‧Month('2011-5-1') = 5(取月份數值)
‧Day('2011-1-2 03:04:05') = 2 (該月份的2號)
‧Hour('2011-1-2 03:04:05') = 3 (取小時數值)
‧Minute('03:04:05') = 4 (取分鐘數值)
‧Second('2011-1-2 03:04:05') = 5(取秒鐘數值)

時間排序值:
‧Quarter('2011-2-2 03:04:05') = 1(本年度的第一季)
‧DayOfWeek('2011-1-7 03:04:05') = 6 (該星期的第7天)
‧MonthAsString(8) = August (本年度第8月是August)
‧DayOfWeekAsString('1') = Sunday (1~7代表週日到週六)
‧Week('2011-2-15') (本年度的第8週)
‧DayOfYear('2011-2-2 03:04:05') = 33(本年度的第33天)
‧FirstDayOfMonth(now()) =32(本月初1是本年度第32天)

其他:
‧DaysInYear('2011-2-2 03:04:05') = 356 (本年度有365天)
‧DaysInMonth('2011-2-2 03:04:05') = 28 (本月份的天數)
‧IsNumericDate(now()) =YES(判別是否為有效的數值時間)
‧IsDate('2011-2-31') = NO(判別是否為有效的字串時間)
‧IsLeapYear(Now()) = YES (是否為閏年)

更多時間函數,可參考Adobe線上文件



 

沒有留言:

張貼留言