在Javascript之中,日期对象是Date,那么如何将一个日期对象按照定制的格式进行输出呢?
可以现告诉你,Date对象有有四个内置方法,用于输出为字符串格式,分别为:
1)toGMTString,将一个日期按照GMT格式显示
2)toLocaleString,将一个日期按照本地操作系统格式显示
3)toLocaleDateString,按照本地格式显示一个日期对象的日期部分
4)toLocaleTimeString,按照本地格式显示一个日期对象的时间部分
var str = '2008-11-11 11:11:09';
alert(str.replace(/\s\d+:\d+:\d+$/,''));
1.Date.prototype.format = function(format)
2.{
3. var o = {
4. "M+" : this.getMonth()+1, //month
5. "d+" : this.getDate(), //day
6. "h+" : this.getHours(), //hour
7. "m+" : this.getMinutes(), //minute
8. "s+" : this.getSeconds(), //second
9. "q+" : Math.floor((this.getMonth()+3)/3), //quarter
10. "S" : this.getMilliseconds() //millisecond
11. }
12. if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
13. (this.getFullYear()+"").substr(4 - RegExp.$1.length));
14. for(var k in o)if(new RegExp("("+ k +")").test(format))
15. format = format.replace(RegExp.$1,
16. RegExp.$1.length==1 ? o[k] :
17. ("00"+ o[k]).substr((""+ o[k]).length));
18. return format;
19.}
showtime = new Date().format("yyyy-MM-dd hh:mm:ss");
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function(fmt)
{ //author: meizz
var o = {
"M+" : this.getMonth()+1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+3)/3), //季度
"S" : this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
return fmt;
}
//+---------------------------------------------------
//| 字符串转成日期类型
//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd
//+---------------------------------------------------
function StringToDate(DateStr)
{
var converted = Date.parse(DateStr);
var myDate = new Date(converted);
if (isNaN(myDate))
{
//var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';
var arys= DateStr.split('-');
myDate = new Date(arys[0],--arys[1],arys[2]);
}
return myDate;
}
/**//*
2 将String类型解析为Date类型.
3 parseDate('2006-1-1') return new Date(2006,0,1)
4 parseDate(' 2006-1-1 ') return new Date(2006,0,1)
5 parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)
6 parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);
7 parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)
8 parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)
9 parseDate('不正确的格式') retrun null
10*/
11function parseDate(str){
12 if(typeof str == 'string'){
13 var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
14 if(results && results.length>3)
15 return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));
16 results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
17 if(results && results.length>6)
18 return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));
19 results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
20 if(results && results.length>7)
21 return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));
22 }
23 return null;
24}
25
26/**//*
27 将Date/String类型,解析为String类型.
28 传入String类型,则先解析为Date类型
29 不正确的Date,返回 ''
30 如果时间部分为0,则忽略,只返回日期部分.
31*/
32function formatDate(v){
33 if(typeof v == 'string') v = parseDate(v);
34 if(v instanceof Date){
35 var y = v.getFullYear();
36 var m = v.getMonth() + 1;
37 var d = v.getDate();
38 var h = v.getHours();
39 var i = v.getMinutes();
40 var s = v.getSeconds();
41 var ms = v.getMilliseconds();
42 if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;
43 if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
44 return y + '-' + m + '-' + d;
45 }
46 return '';
47}
48
分享到:
相关推荐
此外,随着人工智能技术的加入,未来的chrome插件格式化复制文字功能可能会具备更加智能的文本处理能力,如自动识别并转换表格数据、语言翻译、文摘生成等,进一步增强用户的网页内容处理能力。 chrome插件格式化...
即便非专业人士,也能通过UBB代码轻松实现格式化的文本、链接和图片等内容的添加,大幅提升了编辑文章的效率。 图片上传功能则丰富了文章的表现形式。FSO技术的运用,使得用户可以将图片上传到服务器,为文章增添...
【标题】"文摘园地万能音乐播放器插件 -ASP源码.zip" 提供的是一个基于ASP(Active Server Pages)技术开发的音乐播放器插件的源代码。ASP是一种由微软公司推出的服务器端脚本环境,允许开发人员创建动态、交互式的...
- **格式化**:支持文本格式化操作,如加粗、斜体等。 - **事件处理**:定义表单事件的触发条件和响应逻辑。 #### 五、字段扩展设置 - **数据填充**:在表单加载前填充默认数据。 - **级联下拉框**:基于另一个控件...
3. **数据交换格式**:虽然名字中包含XML,但实际应用中,JSON(JavaScript Object Notation)更常被用作数据交换格式,因为它更轻量级且易于解析。 4. **DOM操作**:AJAX获取到数据后,通常需要通过DOM(Document ...
1. 任务文件命名:“formatted_task040_qasc_question_generation.json”表明了这个文件是任务编号040的格式化任务,与问题生成(question generation)相关,并且可能与“qasc”(可能是某个特定项目或术语的缩写)...
**AJAX(Asynchronous JavaScript and XML)** 是一种在无需重新加载整个网页的情况下更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这使得网页应用能够更快地响应用户交互,提升...