javascript日期对象格式化为字符串的实现方法

 本篇文章主要是对javascript日期对象格式化为字符串的实现方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助

javascript提供的日期格式化太简单,一般应用都需要自己实现格式化方法.下面是我想出的一个格式化处理方案,应该是可以满足常用的需求.日期模板中可以使用任意分隔符,还可以使用文字作为分隔符,甚至支持类似yyyyMMdd之类没有分隔符的格式化. 
 
原理:用正则表达式将日期模板中的日期元素[如yyyy, MM, dd]和分隔符拆分成数组,然后用实际的值替换日期元素形成日期字符串. 
 
实现共有两个函数,粘贴可运行. 
 
扩展方式: 
 
示例中只支持了年月日时分秒毫秒的元素,如果需要显示星期则可以在values中添加w = getDay(),将正则表达式修改为y+|M+|d+|H+|m+|s+|S+|w+|[^yMdHmsSw]/g即可. 
 
如果需要将月份或星期显示为全拼或简拼英文,可以在cfg中增加相应配置,我只在cfg中增加了一个示例 
 
使用方式: 
 
var date = new Date(); 
var str = formatDate(date, 'yyyy年MMM月dd日'); 
则str的值为2012年七月29日 
 
 代码如下:
/** 
* 格式化整数 
* @param number:number 要格式化的整数 
* @param fmt:string 整数格式 
*/ 
function formatNumber(number, fmt) { 
number = number + ''; 
if (fmt.length > number.length) { 
return fmt.substring(number.length) + number; 

return number; 

 
/** 
* 格式化日期为字符串表示 
* @param datetime:Date 要格式化的日期对象 
* @param format:String 日期格式 
*/ 
function formatDate(datetime, format) { 
var cfg = { 
MMM : ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'], 
MMMM : ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'] 
}, 
values = { 
y : datetime.getFullYear(), 
M : datetime.getMonth(), 
d : datetime.getDate(), 
H : datetime.getHours(), 
m : datetime.getMinutes(), 
s : datetime.getSeconds(), 
S : datetime.getMilliseconds() 
}; 
/*用正则表达式拆分日期格式各个元素*/ 
var elems = format.match(/y+|M+|d+|H+|m+|s+|S+|[^yMdHmsS]/g); 
//将日期元素替换为实际的值 
for (var i = 0; i < elems.length; i++) { 
if (cfg[elems[i]]) { 
elems[i] = cfg[elems[i]][values[elems[i].charAt(0)]]; 
} else if (values[elems[i].charAt(0)]) { 
elems[i] = formatNumber(values[elems[i].charAt(0)], elems[i].replace(/./g, '0')); 


 
return elems.join(''); 

时间: 2025-01-28 10:31:27

javascript日期对象格式化为字符串的实现方法的相关文章

javascript日期对象格式化为字符串的实现方法_javascript技巧

javascript提供的日期格式化太简单,一般应用都需要自己实现格式化方法.下面是我想出的一个格式化处理方案,应该是可以满足常用的需求.日期模板中可以使用任意分隔符,还可以使用文字作为分隔符,甚至支持类似yyyyMMdd之类没有分隔符的格式化. 原理:用正则表达式将日期模板中的日期元素[如yyyy, MM, dd]和分隔符拆分成数组,然后用实际的值替换日期元素形成日期字符串. 实现共有两个函数,粘贴可运行. 扩展方式: 示例中只支持了年月日时分秒毫秒的元素,如果需要显示星期则可以在values

JavaScript获取对象在页面中位置坐标的方法_javascript技巧

本文实例讲述了JavaScript获取对象在页面中位置坐标的方法.分享给大家供大家参考,具体如下: <script language="javascript" type="text/javascript" > function getXY(Obj) { var h = Obj.offsetHeight; for (var sumTop=0,sumLeft=0;Obj!=document.body;sumTop+=Obj.offsetTop,sumLeft

Javascript 日期对象Date扩展方法_时间日期

今天在网上摘抄了些js中操作日期的相关方法,现在与大家分享一下. 复制代码 代码如下: <script type="text/javascript"> Date.prototype.Format = function(fmt) { //author: meizz var o = { "M+" : this.getMonth() + 1, //月份 "d+" : this.getDate(), //日 "h+" :

Javascript日期对象的dateAdd与dateDiff方法_时间日期

复制代码 代码如下: Date.prototype.dateAdd = function(interval,number) { var d = this; var k={'y':'FullYear', 'q':'Month', 'm':'Month', 'w':'Date', 'd':'Date', 'h':'Hours', 'n':'Minutes', 's':'Seconds', 'ms':'MilliSeconds'}; var n={'q':3, 'w':7}; eval('d.set'

用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。_时间日期

复制代码 代码如下: //传入从数据库中取出的日期类型数据 function getformatdate(d){ var formate_datetime; var array = d.split(" "); var date = array[0]; var time = array[1]; var array_date = date.split("-"); var array_time = time.split(":"); var second

isArray()函数(JavaScript中对象类型判断的几种方法)_javascript技巧

1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在). 但 typeof 的能力有限,其对于Date.RegExp类型返回的都是"object".如: typeof {}; //

FireFox下XML对象转化成字符串的解决方法_javascript技巧

解决方法如下: 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>xml转化成字符串</title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script language=&qu

Javascript的className不能用字符串的replace方法嗎?

问题描述 typeofthis.className返回是string,但用replace方法没反應,請各位高手賜教,Thankyou!<html><head><title>Javascript</title><style>.bigSize{width:250px;height:250px}.smallSize{width:150px;height:150px}.redColor{background-color:red}.blueColor{ba

java-Java 未知格式日期字符串如何转换成日期对象

问题描述 Java 未知格式日期字符串如何转换成日期对象 5C 如题,一种未知的日期格式的字符串如何转换为日期对象如值可能是 2015-02-06T03:57:23+00:002014-10-20 03:24:32.0638th Apr 2015 02:276/13/2015 5:47 PM 等等常规的世界日期格式,如何转成日期对象 解决方案 只能把可能的格式都列上,然后一个一个匹配,匹配上的就转换,没有匹配上的不转换. 解决方案二: 只能用正则表达式依次匹配,然后再调用对应的格式解析. 解决方