zoukankan      html  css  js  c++  java
  • Ext.Net 1.2.0_Ext.Net.DateColumn 日期格式问题

    本文内容

    • 概述
    • Store RecordField 和 GridPanel DateColumn
    • Ext.Net 源代码片段
    • 演示

    概述

    在使用DateColumn 时,会用到日期格式,代码如下:

    <ext:DateColumn Header="日期" DataIndex="FINSERTEDDATE" Format="Y-m-d H:i:s"></ext:DateColumn>

    那么 EXT.NET 日期格式是什么?之前以为跟数据库的格式差不多,又在 EXT.NET CHM 文档中找,都不对,其实,EXT.NET 源代码本身就是最好的说明文档。

    Store RecordField 和 GridPanel DateColumn

    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" />

    那就可以了。

    Ext.Net 源代码片段

    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)等等。

     

    演示:以 "2011-07-14 14:05:37" 为例

    格式

    结果

    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 会原样显示。

     

    下载 Demo

  • 相关阅读:
    Kanzi Studio中的概念
    Linux基本操作1
    Kanzi入门
    Kanzi UI Solution
    Linux下内存占用和CPU占用的计算
    AD19新功能之交互式等长
    AD19新功能之跟随走线
    AD19新功能之Gloss Selected(修线)
    AD19新功能之ActiveRoute
    RT-Thread--内核移植
  • 原文地址:https://www.cnblogs.com/liuning8023/p/2131458.html
Copyright © 2011-2022 走看看