在使用DateColumn 时,会用到日期格式,代码如下:
<ext:DateColumn Header="日期" DataIndex="FINSERTEDDATE" Format="Y-m-d H:i:s"></ext:DateColumn>
那么 EXT.NET 日期格式是什么?之前以为跟数据库的格式差不多,又在 EXT.NET CHM 文档中找,都不对,其实,EXT.NET 源代码本身就是最好的说明文档。
Store 控件是不可见。设计它的目的在于将数据缓存在客户端,以便用 JavaScript 对该数据进行排序、分页和筛选等操作。这些操作全是在客户端进行的。
而像 GridPanel 这样的控件,是用于以各种式样呈现 Store 中的数据。
无论是 Store,还是 GridPanel,都可以规定数据的类型及其格式,比如,String、Boolean、Int、Float 等。Store 对某个数据有其默认的类型和格式。
<ext:RecordField Name="ToShortDate" Type="Date" DateFormat="Y-m-d" />
或
<ext:DateColumn Header="ToLocalTime" DataIndex="ToLocalTime" Format="yyyy-MM-dd" />
它们的联系在于,Store 要先确保能正确识别一个数据的类型和格式,GridPanel 才能正确呈现,或着说以任何你期望的式样显示,特别是日期型数据。举一个极端的例子。如果有日期数据,只有小时和分,如 "11:12",若不对 Store 的 RecrdField 进行任何设置,无论你如何设置 GridPanel DateColumn,它都不能正确显示这个时间。但若这样:
<ext:RecordField Name="ToShortTime" Type="Date" DateFormat="H:i" />
那就可以了。
d:"String.leftPad(this.getDate(), 2, '0')",
D:"Date.getShortDayName(this.getDay())",
j:"this.getDate()",
l:"Date.dayNames[this.getDay()]",
N:"(this.getDay() ? this.getDay() : 7)",
S:"this.getSuffix()",
w:"this.getDay()",
z:"this.getDayOfYear()",
W:"String.leftPad(this.getWeekOfYear(), 2, '0')",
F:"Date.monthNames[this.getMonth()]",
m:"String.leftPad(this.getMonth() + 1, 2, '0')",
M:"Date.getShortMonthName(this.getMonth())",
n:"(this.getMonth() + 1)",
t:"this.getDaysInMonth()",
L:"(this.isLeapYear() ? 1 : 0)",
o:"(this.getFullYear() + (this.getWeekOfYear() == 1 &&this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 &&this.getMonth() < 11 ? -1 : 0)))",
Y:"String.leftPad(this.getFullYear(), 4, '0')",
y:"('' + this.getFullYear()).substring(2, 4)",
a:"(this.getHours() < 12 ? 'am' : 'pm')",
A:"(this.getHours() < 12 ? 'AM' : 'PM')",
g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",
G:"this.getHours()",
h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2,'0')",
H:"String.leftPad(this.getHours(), 2, '0')",
i:"String.leftPad(this.getMinutes(), 2, '0')",
s:"String.leftPad(this.getSeconds(), 2, '0')",
u:"String.leftPad(this.getMilliseconds(), 3, '0')",
O:"this.getGMTOffset()",
P:"this.getGMTOffset(true)",
T:"this.getTimezone()",
Z:"(this.getTimezoneOffset() * -60)",
根据它们的函数名能猜到它们的含义。比如,Y 和 y 表示年;M 和 m 表示月;D 和 d 表示天;H 和 h 表示小时;i 表示分;s 和 u 表示秒;A 和 a 表示上下午。其他的如,L 表示是否为闰年;O 和 P 表示格林威治标准时间(GMT),英国的标准时间,也是世界各地时间的参考标准。中英两国的标准时差为8个小时,即英国当地时间比中国北京时间晚8小时;T 和 Z 表示协调世界时(UTC)等等。
格式 |
结果 |
Y-m-d H:i:s |
2011-07-14 14:05:37 |
y-m-d H:i:s |
11-07-14 14:05:37 |
y-M-d H:i:s |
2011-7-14 14:05:37 |
y-m-d H:i:s L |
2011-7-14 14:05:37 0 |
y-m-d H:i:s T |
2011-7-14 14:05:37 UTC |
y-m-d H:i:s Z |
2011-7-14 14:05:37 28800 |
y-m-d H:i:s O |
2011-7-14 14:05:37 +0800 |
y-m-d H:i:s P |
2011-7-14 14:05:37 +08:00 |
Y-m-d h:i:s |
2011-07-14 2:05:37 |
Y-m-d H:i:s G |
2011-7-14 14:05:37 14 |
Y-m-d H:i:s a |
2011-7-14 14:05:37 下午 |
Y/m/d H:i:s |
2011/07/14 14:05:37 |
Y/m/dH:i:s |
2011/07/1414:05:37 |
只要字母写对了,字母与字母间的字符无所谓,EXT.NET 会原样显示。