DataType工具为数据,日期,以及XML文档,提供方便的格式转换和字符串格式化方法。
注意:我们不赞成config.locale,config.dataformat,以及DataType.Data.Locale。这些属性将在3.4.0版本中被移除。
使用DataType工具
日期
格式化日期
DataType.Data.format()将使用使用格式化的字符串作为输出。一些格式可以本地化的,所以,应该指定YUI实例的lang属性。
YUI({lang:"zh-CN"}).use("datatype-date", function(Y) {
// 显示格式化的当前时间和日期。
//%x %X的意思分别是现实日期和时间。更多格式化选项见下面。
alert(Y.DataType.Date.format(new Date(), {format:"%x %X"}));
});
浏览器中显示结果为:
这个模块支持许多内嵌语言。
a:一个从周日到周六的简短周次名
A:一个从周日到周六的全周次名
b:一月到十二月的简称
B:一月到十二月的全程
c:日期和时间的呈现形式
p:AM和PM
P:同p,但是是小写
x:日期(没有时间)
X:时间(没有日期)
YUI().use("intl", "datatype-date-format", function(Y) {
// provide data for Punjabi in India印第安啥地方?
Y.Intl.add("datatype-date-format", "pa-IN", {
"a":["ਐਤ.","ਸੋਮ.","ਮੰਗਲ.","ਬੁਧ.","ਵੀਰ.","ਸ਼ੁਕਰ.","ਸ਼ਨੀ."],
"A":["ਐਤਵਾਰ","ਸੋਮਵਾਰ","ਮੰਗਲਵਾਰ","ਬੁਧਵਾਰ","ਵੀਰਵਾਰ","ਸ਼ੁੱਕਰਵਾਰ","ਸ਼ਨੀਚਰਵਾਰ"],
"b":["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ"],
"B":["ਜਨਵਰੀ","ਫ਼ਰਵਰੀ","ਮਾਰਚ","ਅਪ੍ਰੈਲ","ਮਈ","ਜੂਨ","ਜੁਲਾਈ","ਅਗਸਤ","ਸਤੰਬਰ","ਅਕਤੂਬਰ","ਨਵੰਬਰ","ਦਸੰਬਰ"],
"c":"%a, %Y %b %d %l:%M:%S %p %Z",
"p":["ਸਵੇਰੇ","ਸ਼ਾਮ"],
"P":["ਸਵੇਰੇ","ਸ਼ਾਮ"],
"x":"%d/%m/%Y",
"X":"%l:%M:%S %p"
});
// switch to Punjabi
Y.Intl.setLang("datatype-date-format", "pa-IN");
// now dates are formatted in Punjabi
alert(Y.DataType.Date.format(new Date(), {format:"%A %x %X"}));
});
因为编码不对头,所以显示乱码,但从图中可以看出,日期和时间都是按照%x %X格式化的。
至于intl这个模块:就是internationalization工具,支持管理本地资源,例如字符串和格式的结构。下一节讲。
解析日期
var date1 = Y.DataType.Date.parse("December 17, 1995 03:24:00");
//读出日期,看到底是什么样子,下同。
alert(date1);
var date2 = Y.DataType.Date.parse(1995,11,17);
var date3 = Y.DataType.Date.parse(1995,11,17,3,24,0);
var date4 = Y.DataType.Date.parse(948548583);
这个比较简单。如果给出的数据无效,则返回null
数字
格式化数字
alert(Y.DataType.Number.format(123123123.176,{
prefix: "€",//前缀
thousandsSeparator: ".",//千位分隔符
decimalSeparator: ",",//小数点分隔符
decimalPlaces: 2,//小数位数
suffix: " (EUR)"//后缀
}));
解析数字
字符串值可以被转换成数字对象,用DataType.Number.parse().
var number = Y.DataType.Number.parse("123123");
XML
格式化xml
DataType.XML.format()能够借搜一个XML文档并返回字符串,不同浏览器返回值可能有轻微差别。
解析xml
DataType.XML.parse接受一个字符串形式的XML,返回一个XML文档对象。
var myXMLDocument = Y.DataType.XML.parse("<myroot><item type='foo'><name>Abc</name><rank>1</rank></item><item type='bar'><name>Def</name><rank>2</rank></item><item type='bat'><name>Ghhi</name><rank>3</rank></item></myroot>");
Y.Parsers快捷方式
待补充。。。。