此篇文章比較偏向 Extjs 需要了解的輔助方法,與 MVC 4 WebApi 比較沒有關係。
| 格式符號 | 說明 | 返回值範例 |
|---|---|---|
| d | 月份中的天數,2 位數,不足補 0 | 01 至 31 |
| D | 該日期的星期縮寫,3 個字母 | Mon 至 Sun |
| j | 月份中的天數,不補 0 | 1 至 31 |
| l | 該日期的星期完整文字表示 | Sunday 至 Saturday |
| N | 該日期的星期 ISO-8601 數字表示法 | 1 ( Monday )至 7 ( Sunday ) |
| S | 月份中日期序數的後綴字詞,2 個字母,通常與 j 一起使用 | 1 至 31 |
| w | 該日期的星期數字表示法 | 0 ( Sunday ) 至 6 ( Saturday ) |
| z | 該日期一年中的天數 | 0 至 364 ( 閏年為 365 ) |
| W | 該日期一年中的 ISO-8601 週數,一星期以 Monday 開始 | 01 至 53 |
| F | 月份完整文字表示 | January 至 December |
| m | 月份的數字表示法,2 位數,不足補 0 | 01 至 12 |
| M | 月份的縮寫 | Jan 至 Dec |
| n | 月份的數字表示法,2 位數,不補 0 | 1 至 12 |
| t | 該日期的月份中天數 | 28 至 31 |
| L | 是否為閏年 | 1 ( 是 ) 或 0 ( 否 ) |
| o | ISO-8601 的年份數字(與 Y ㄧ樣,但若對應日期 ISO 星期 W 屬於之前一年或後一年,則會使用該年份數字) | 1998 或 2004 |
| Y | 年份的完整數字表示法 | 1999 至 2003 |
| y | 年份的 2 位數字表示法 | 99 至 03 |
| a | 該日期時間上午或下午小寫表示法 | am 至 pm |
| A | 該日期時間上午或下午大寫表示法 | AM 至 PM |
| g | 12 小時制格式表示的小時數,不補 0 | 1 至 12 |
| G | 24 小時制格式表示的小時數,不補 0 | 0 至 23 |
| h | 12 小時制格式表示的小時數,2 位數,不足補 0 | 01 至 12 |
| H | 24 小時制格式表示的小時數,2 位數,不足補 0 | 00 至 23 |
| i | 分鐘數,2 位數,不足補 0 | 00 至 59 |
| s | 秒鐘數,2 位數,不足補 0 | 00 至 59 |
| u | 秒的小數 | 001 (即:0.001s) 或 100 (即:0.100s) 或 999 (即:0.999s) 或 999876543210 (即:0.999876543210s) |
| O | 以時鍾及分鍾數表示與格林威治間 (GMT) 之差 | +0800 |
| P | 以時鍾及分鍾數表示與格林威治間 (GMT) 之差,冒號隔開 | +08:00 |
| T | 電腦所在時區的縮寫 | EST、MDT、PDT ... |
| Z | 以秒數表示時區偏移 (如果在 UTC 的西邊為負數,東邊為正數) | -43200 至 50400 |
| c | ISO 8601日期,請參考:http://www.w3.org/TR/NOTE-datetime | 2014-02-19T14:52:13+08:00 |
| U | 自 January 1 1970 00:00:00 GMT 以來的秒數 | 1193432466 或 -2138434463 |
| MS | MICROSOFT AJAX 序列化日期/td> | /Date(1392793013337)/ |
| time | 自 January 1 1970 00:00:00 GMT 以來的毫秒數 | 1350024476440 |
| timestamp | 自 January 1 1970 00:00:00 GMT 以來的秒數與 U 相同 | 1350024866 |
以下是常見的標準日期時間的格式,這不內建於 Ext.Date 內,可以在程式碼共用地區加上此程式碼,就可以在所有地方執行,你可以任意增刪此格式,讓它對於你的程式更加完整。
Ext.Date.patterns = {
ISO8601Long: "Y-m-d H:i:s",
ISO8601Short: "Y-m-d",
ShortDate: "n/j/Y",
LongDate: "l, F d, Y",
FullDateTime: "l, F d, Y g:i:s A",
MonthDay: "F d",
ShortTime: "g:i A",
LongTime: "g:i:s A",
SortableDateTime: "Y-m-d\\TH:i:s",
UniversalSortableDateTime: "Y-m-d H:i:sO",
YearMonth: "F, Y"
};
在程式碼上就可以這樣使用:
var dt = new Date(); Ext.Date.format(dt, Ext.Date.patterns.ShortDate);
Ext.Date 方法
add
日期加法運算
// 基本用法
var dt = Ext.Date.add(new Date('10/29/2006'), Ext.Date.DAY, 5);
console.log(dt); // returns 'Fri Nov 03 2006 00:00:00'
// 負值會扣除
var dt2 = Ext.Date.add(new Date('10/1/2006'), Ext.Date.DAY, -5);
console.log(dt2); // returns 'Tue Sep 26 2006 00:00:00'
// 小數也可以使用
var dt3 = Ext.Date.add(new Date('10/1/2006'), Ext.Date.DAY, 1.25);
console.log(dt3); // returns 'Mon Oct 02 2006 06:00:00'
between
檢查日期是否在區間日期內
Ext.Date.between(new Date(),new Date("07-19-2014"),new Date("07-21-2014"))
clearTime
清除時間
clone
複製,以下程式碼就能說明,複製出來的修改位置不同
// 錯誤用法:
var orig = new Date('10/1/2006');
var copy = orig;
copy.setDate(5);
console.log(orig); // returns 'Thu Oct 05 2006'!
// 正確用法:
var orig = new Date('10/1/2006'),
copy = Ext.Date.clone(orig);
copy.setDate(5);
console.log(orig); // returns 'Thu Oct 01 2006'
format
日期輸出格式,文章一開頭有說明格式規則
Ext.Date.format(new Date(),'Y-m-d')
formatContainsDateInfo
是否包含日期格式 (Y 或 m 或 d)
Ext.Msg.alert("提示", Ext.Date.formatContainsHourInfo('Y-m-d H:i:s')); // true
formatContainsHourInfo
是否包含時間格式 (H 或 i 或 s)
Ext.Msg.alert("提示", Ext.Date.formatContainsHourInfo('Y-m-d H:i:s')); // true
getDayOfYear
取得該日期是一年中的第幾天
Ext.Date.getDayOfYear(new Date())
getDaysInMonth
取得該日期之月份的天數
Ext.Date.getDaysInMonth(new Date())
getElapsed
取得兩日期相差之毫秒數
Ext.Date.getElapsed(new Date(), Ext.Date.add(new Date(), Ext.Date.DAY, 1)); // 86400000
getFirstDateOfMonth
取得該日期之月份的第一天日期
Ext.Date.getFirstDateOfMonth(new Date()) // 2014-02-01
getFirstDayOfMonth
取得該日期之月份第一天日期的星期數字表示法,0 ( Sunday ) - 6 ( Saturday )
Ext.Date.dayNames[Ext.Date.getFirstDayOfMonth(new Date())]
getGMTOffset
以時鍾及分鍾數表示與格林威治間 (GMT) 之差
Ext.Msg.alert("提示", Ext.Date.getGMTOffset(new Date()));
getLastDateOfMonth
取得該日期之月份的最後一天日期
Ext.Date.getLastDateOfMonth(new Date())
getLastDayOfMonth
取得該日期之月份第最後一天日期的星期數字表示法,0 ( Sunday ) - 6 ( Saturday )
Ext.Date.dayNames[Ext.Date.getLastDayOfMonth(new Date())]
getMonthNumber
取得月份名稱的數字表示法,0 - 11
Ext.Date.getMonthNumber('May') // 4
getShortDayName
取得星期簡稱,傳入 0 - 6
Ext.Date.getShortDayName(6) // Sat
getShortMonthName
取得月份簡稱
Ext.Date.getShortMonthName(6) // Jul
getSuffix
傳回日期後綴字詞
getTimezone
電腦所在時區的縮寫
getWeekOfYear
取得該日期之一年中的週數
Ext.Date.getWeekOfYear(new Date())
isDST
是否為日光節約時間
isEqual
比較兩日期是否相等
isLeapYear
是否為閏年
isValid
驗證日期是否正確
Ext.Date.isValid(2014, 2, 28) // true Ext.Date.isValid(2014, 2, 29) // false
now
自 January 1 1970 00:00:00 GMT 以來的秒數
parse
字串轉換日期
//dt = Fri May 25 2007 (current date)
var dt = new Date();
//dt = Thu May 25 2006 (today's month/day in 2006)
dt = Ext.Date.parse("2006", "Y");
//dt = Sun Jan 15 2006 (all date parts specified)
dt = Ext.Date.parse("2006-01-15", "Y-m-d");
//dt = Sun Jan 15 2006 15:20:01
dt = Ext.Date.parse("2006-01-15 3:20:01 PM", "Y-m-d g:i:s A");
// attempt to parse Sun Feb 29 2006 03:20:01 in strict mode
dt = Ext.Date.parse("2006-02-29 03:20:01", "Y-m-d H:i:s", true); // returns null
subtract
日期減法運算
// 基本用法
var dt = Ext.Date.subtract(new Date('10/29/2006'), Ext.Date.DAY, 5);
console.log(dt); // returns 'Tue Oct 24 2006 00:00:00'
// 負值會累加
var dt2 = Ext.Date.subtract(new Date('10/1/2006'), Ext.Date.DAY, -5);
console.log(dt2); // returns 'Fri Oct 6 2006 00:00:00'
// 小數也可以使用
var dt3 = Ext.Date.subtract(new Date('10/1/2006'), Ext.Date.DAY, 1.25);
console.log(dt3); // returns 'Fri Sep 29 2006 06:00:00'
unescapeFormat
移除日期格式之逸出字元Ext.Date.unescapeFormat('Y-m-d \\') // Y-m-d
參考與引用:Ext JS 4.2.0文档翻译:Ext.Date、Ext.DateView
沒有留言 :
張貼留言