extjs string类型转date_ExtJs 的 Date 格式字符<转>

首先简单介绍一下ExtJs中的Date基本上就是PHP date函数的一个子集,表征了一个日期对象。废话到此为止。Date类在ExtJs中提供的方法算是少的。但是,另外一方面,因为历史原因,现在Date无论在哪个语言里面,表征其格式变量的字母都很多。本节就着重讲解Date的日期格式表示。这些都是ExtJs API中的内容,如果有中文版的可以直接跳过这里了。如果需要继续看的,请注意,其中的格式字符时大小写敏感的。

Y    年的数字表示,4位数字,例如1999

y    年的两位数字表示,例如99或03

o    ISO-8601年的数字表示(与Y相同,但是如果ISO周的数W属于前一年或者下一年,那么就用那个年)例如1998或者2004

L    是否是闰年。1表示是闰年,否则0

F    月份的全称。Januray到December

M    月份文本的简写。Jan到Dec

m    月份的数字表示,0开始。例如 01 到 12

n    月份的数字表示,不以0开头。1到12

D    表示星期中天的缩写。例如,Mon到Sun

l    跟D一样,不过是全称,例如Sunday到Saturday

w    一周7天的数字表示0(周日)到6(周六)

N    ISO-8601一周7天的数字表示。1表示Monday(周一)到7表示Sunday(周日)

W    ISO-8601一年中周的数字表示。每周从周一开始计的。所以有01-53,顺序标记了53个周。

d    以0开头的两位数字,表征了一个月中的天。例如,01到31

j    跟d的内容一样,只不过不用0开头。例如,1到31

t    给定月份内的天数。28到31

S    英文中叙述的后缀,用来表示一个月的天时候用,2个字符,跟j可以良好配合。例如,st,nd,rd,或者th(1st,2nd,3rd,4th)

z    一年365天的数字表示,从0开始。即0-364,闰年则是0-365

上下午

a    AM和PM的小写。例如,am或者pm

A    AM和PM的大写。例如,AM或者PM

g    不以0开头的12小时格式,1到12

h    以0开头的12小时格式,01到12

G    不以0开头的24小时格式,0到23

H    以0开头的24小时格式,00到23

i    以0开头的分钟表示,00到59

s    以0开头的秒表示,00到59

u    秒的小数部分。至少一位数字,多了不限。例如001表示0.001秒。999表示0.999秒。12312312表示0.12312312秒。

U    从Unix纪元开始(January 1 1970 00:00:00 GMT) 到现在的秒。例如1193432466

Z    当前时区与UTC相比相差的秒数,如果在UTC西边就是负数,东边就是正数。-4300到50400

时区

O    与格林威治时间的时间差。例如+1030

P    带冒号的与格林威治时间的时间差。例如-08:00

T    运行当前代码机器所处的时区的缩写。例如EST,MDT,PDT

c    ISO8601的日期表示(注意,如果秒有小数部分,则至少1位数字,多了不限。参见www.w3.org/TR/NOTE-datetiem获取更多内容。例子,2007-04-17T15:19:21+08:00 or 2008-03-16T16:18:22Z or 2009-02-15T17:17:23.9+01:00 or 2010-01-14T18:16:24,999876543-07:00

以上就是Date的格式符。在使用的过程中要特别注意了,因为有的时候我们自定义格式的时候,会遇到一些单词中的字母跟格式符一致的情况。当然这个时候我们需要输出的是单词而不是某个Date所表示的内容。素以这个时候必须使用转义字符来处理。例如:

var dt = new Date('1/10/2007 03:05:01 PM GMT-0600');

document.write(dt.format('Y-m-d'));                           // 2007-01-10

document.write(dt.format('F j, Y, g:i a'));                   // January 10, 2007, 3:05 pm

document.write(dt.format('l, \\t\\he jS \\of F Y h:i:s A')); // Wednesday, the 10th of January 2007 03:05:01 PM

下面在给出一个日期样式的对象,API中有这个,非常好用。虽然它本身不是Date中的一部分。但是灵活应用的话会给程序的书写带来很大的便利。

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();

document.write(dt.format(Date.patterns.ShortDate));

其它资料:

日期时间格式:

样本数据:

'Wed Jan 10 2007 15:05:01 GMT-0600 (中区标准时间)'

格式符 输出 说明

------ ---------- --------------------------------------------------------------

d 10 月份中的天数,两位数字,不足位补“0”

D Wed 当前星期的缩写,三个字母

j 10 月份中的天数,不补“0”

l Wednesday 当前星期的完整拼写

S th 英语中月份天数的序数词的后缀,2个字符(与格式符“j”连用)

w 3 一周之中的天数(1~7)

z 9 一年之中的天数(0~365)

W 01 一年之中的周数,两位数字(00~52)

F January 当前月份的完整拼写

m 01 当前的月份,两位数字,不足位补“0”

M Jan 当前月份的完整拼写,三个字母

n 1 当前的月份,不补“0”

t 31 当前月份的总天数

L 0 是否闰年(“1”为闰年,“0”为平年)

Y 2007 4位数字表示的当前年数

y 07 2位数字表示的当前年数

a pm 小写的“am”和“pm”

A PM 大写的“am”和“pm”

g 3 12小时制表示的当前小时数,不补“0”

G 15 24小时制表示的当前小时数,不补“0”

h 03 12小时制表示的当前小时数,不足位补“0”

H 15 24小时制表示的当前小时数,不足位补“0”

i 05 不足位补“0”的分钟数

s 01 不足位补“0”的秒数

O -0600 用小时数表示的与 GMT 差异数

T CST 当前系统设定的时区

Z -21600 用秒数表示的时区偏移量(西方为负数,东方为正数)

用法举例:(注意你必须在字母前使用转意字符“\\”才能将其作为字母本身而不是格式符输出):

var dt = new Date('1/10/2007 03:05:01 PM GMT-0600');

document.write(dt.format('Y-m-d')); //2007-01-10

document.write(dt.format('F j, Y, g:i a')); //January 10, 2007, 3:05 pm

document.write(dt.format('l, \\t\\he dS of F Y h:i:s A')); //Wednesday, the 10th of January 2007 03:05:01 PM

下面有一些标准的日期/时间模板可能会对你有用。它们不是 Date.js 的一部分,但是你可以将下列代码拷出,并放在 Date.js 之后所引用的任何脚本内,都将成为一个全局变量,并对所有的 Date 对象起作用。你可以按照你的需要随意增加、删除此段代码。

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();

document.write(dt.format(Date.patterns.ShortDate));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值