`
tree_161219
  • 浏览: 87799 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文摘-- javascript 日期格式化

阅读更多
在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

分享到:
评论

相关推荐

    VB精华文摘

    《VB精华文摘-API篇》 《VB精华文摘-其他篇》 《VB精华文摘-图形篇》 《VB精华文摘-字符串篇 《VB精华文摘-控件篇》 《VB精华文摘-数据库篇 《VB精华文摘-文件篇》 《VB精华文摘-游戏篇》 ...

    vb精华文摘-api篇

    这个压缩包包含了一个名为“VB精华文摘-API篇”的CHM文件,这是一种微软编写的帮助文档格式,通常用于存储教程、示例代码和参考信息。 API编程在VB中扮演着重要角色,因为VB本身虽然提供了丰富的控件和函数库,但...

    VB精华文摘-- API篇

    《VB精华文摘-- API篇》是一本专为Visual Basic(VB)开发者设计的重要参考资料,主要聚焦于API(Application Programming Interface)的使用。API是操作系统或其他软件提供的接口,允许程序员调用系统级功能,实现...

    vb精华文摘-控件篇

    vb精华文摘-控件篇

    VC精华文摘-控件篇

    VC精华文摘-控件篇 chm

    VB精华文摘-api

    《VB精华文摘-api》是针对Visual Basic编程语言中API(Application Programming Interface)使用的深入探讨和精选摘要。API是软件开发中的一个重要概念,它是一组预定义的函数、类、对象和常量,允许开发者通过调用...

    VC精华文摘-数据库教程

    VC精华文摘-数据库 很好的教程!

    《vc精华文摘-数据库》.rar_VC 数据库_Vc

    《VC精华文摘-数据库》是一份集合了Visual C++(简称VC)在数据库应用方面的技术精华资料。这个压缩包包含两部分内容:www.pudn.com.txt和《VC精华文摘-数据库》文档,旨在帮助开发者深入理解和掌握VC与数据库交互的...

    VB精华文摘-窗体篇.chm

    VB精华文摘-窗体篇.chm

    VB精华文摘-其他篇.chm

    VB精华文摘-其他篇.chm

    VB精华文摘-字符串篇.chm

    VB精华文摘-字符串篇.chm

    VB精华文摘-网络篇

    《VB精华文摘-网络篇》是一份针对Visual Basic(VB)编程语言在网络应用方面的深入学习资料。VB作为Microsoft开发的一种面向对象的编程语言,深受程序员喜爱,尤其在网络编程领域有着广泛的应用。这份文摘主要涵盖了...

    VB精华文摘-字符串篇

    "VB精华文摘-字符串篇"很显然是一份专门针对VB字符串操作的资料,它可能包含了各种字符串函数、方法以及最佳实践的汇总。下面我们将深入探讨VB中的字符串处理相关知识点。 1. **字符串变量和数据类型**: 在VB中,...

    《vc精华文摘-api篇》.rar_API_VC API_Vc_Windows API VC_windows api

    《VC精华文摘-API篇》是一份专注于Visual C++(简称VC)开发中关于API(Application Programming Interface)使用的参考资料。API是操作系统为开发者提供的接口,让程序员能够与操作系统进行交互,实现各种功能。在...

    VC精华文摘-文件篇

    《VC精华文摘-文件篇》是对Visual C++(简称VC)编程中关于文件操作的深入探讨和精华总结。在Windows环境下,VC是开发者常用的一种C++集成开发环境,其强大的功能和丰富的库支持使得文件操作变得高效且方便。本文摘...

    VB精华文摘-其他篇

    《VB精华文摘-其他篇》是一份针对Visual Basic(VB)编程语言的综合性学习资料,专注于非核心但至关重要的知识点。在这个集合中,我们主要探讨VB编程中的各种实用技巧、扩展功能和常见问题解决方案。VB是一种面向...

    OpenAI政变背后是科学家创始人的悲歌-每日文摘-万维读者网(电脑版).pdf

    OpenAI政变背后是科学家创始人的悲歌-每日文摘-万维读者网(电脑版).pdf

Global site tag (gtag.js) - Google Analytics