`

Date format

    博客分类:
  • WEB
阅读更多
This was developed to allow for the formatting of dates in JavaScript and ActionScript like PHP can do. I actually just took the documentation from the PHP date function and went down the list implementing every option that I could do easily. I know more support could be added, but I didn't need it (and still don't). If anyone embellishes on this let me know and we can post better versions!

Using it is simple, but you may need to refer to the available format string options often to remember how to use it. I always need to refer to PHP's date documentation every time I use it.


var myDate = new Date();
alert(myDate.format('M jS, Y')); // May 11th, 2006 

Here are the format options that may be used (taken from php.net and modified a bit):

format character Description Example returned values

Day 

d Day of the month, 2 digits with leading zeros 01 to 31 
D A textual representation of a day, three letters Mon through Sun 
j Day of the month without leading zeros 1 to 31 
l (lowercase 'L') A full textual representation of the day of the week Sunday through Saturday 
N ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday) 
S English ordinal suffix for the day of the month, 2 characters st, nd, rd or th. Works well with j  
w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday) 
z (unsuported)
 The day of the year (starting from 0) 0 through 365 
Week 
W (unsuported) ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) Example: 42 (the 42nd week in the year) 

Month 
F A full textual representation of a month, such as January or March January through December 
m Numeric representation of a month, with leading zeros 01 through 12 
M A short textual representation of a month, three letters Jan through Dec 
n Numeric representation of a month, without leading zeros 1 through 12 
t Number of days in the given month 28 through 31 

Year 
L (unsuported) Whether it's a leap year 1 if it is a leap year, 0 otherwise. 
o (unsuported) ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. (added in PHP 5.1.0) Examples: 1999 or 2003 
Y A full numeric representation of a year, 4 digits Examples: 1999 or 2003 
y A two digit representation of a year Examples: 99 or 03 

Time 
a Lowercase Ante meridiem and Post meridiem am or pm 
A Uppercase Ante meridiem and Post meridiem AM or PM 
B (unsuported) Swatch Internet time 000 through 999 
g 12-hour format of an hour without leading zeros 1 through 12 
G 24-hour format of an hour without leading zeros 0 through 23 
h 12-hour format of an hour with leading zeros 01 through 12 
H 24-hour format of an hour with leading zeros 00 through 23 
i Minutes with leading zeros 00 to 59 
s Seconds, with leading zeros 00 through 59 

Timezone 
e (unsuported) Timezone identifier (added in PHP 5.1.0) Examples: UTC, GMT, Atlantic/Azores 
I (unsuported) Whether or not the date is in daylights savings time 1 if Daylight Savings Time, 0 otherwise. 
O Difference to Greenwich time (GMT) in hours Example: +0200 
P Difference to Greenwich time (GMT) with colon between hours and minutes (added in PHP 5.1.3) Example: +02:00 
T (unsuported) Timezone setting of this machine Examples: EST, MDT ... 
Z Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. -43200 through 43200 

Full Date/Time 
c (unsuported) ISO 8601 date (added in PHP 5) 2004-02-12T15:19:21+00:00 
r RFC 2822 formatted date Example: Thu, 21 Dec 2000 16:01:07 +0200 
U Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) See also time() 

And here is the format function in all it's glory:

// Simulates PHP's date function
Date.prototype.format = function(format) {
	var returnStr = '';
	var replace = Date.replaceChars;
	for (var i = 0; i < format.length; i++) {
		var curChar = format.charAt(i);
		if (replace[curChar])
			returnStr += replace[curChar].call(this);
		else
			returnStr += curChar;
	}
	return returnStr;
};
Date.replaceChars = {
	shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
	longMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
	shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
	longDays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
	
	// Day
	d: function() { return (this.getDate() < 10 ? '0' : '') + this.getDate(); },
	D: function() { return Date.replace.shortDays[this.getDay()]; },
	j: function() { return this.getDate(); },
	l: function() { return Date.replace.longDays[this.getDay()]; },
	N: function() { return this.getDay() + 1; },
	S: function() { return (this.getDate() % 10 == 1 && this.getDate() != 11 ? 'st' : (this.getDate() % 10 == 2 && this.getDate() != 12 ? 'nd' : (this.getDate() % 10 == 13 && this.getDate() != 1 ? 'rd' : 'th'))); },
	w: function() { return this.getDay(); },
	z: function() { return "Not Yet Supported"; },
	// Week
	W: function() { return "Not Yet Supported"; },
	// Month
	F: function() { return Date.replace.longMonths[this.getMonth()]; },
	m: function() { return (this.getMonth() < 11 ? '0' : '') + (this.getMonth() + 1); },
	M: function() { return Date.replace.shortMonths[this.getMonth()]; },
	n: function() { return this.getMonth() + 1; },
	t: function() { return "Not Yet Supported"; },
	// Year
	L: function() { return "Not Yet Supported"; },
	o: function() { return "Not Supported"; },
	Y: function() { return this.getFullYear(); },
	y: function() { return ('' + this.getFullYear()).substr(2); },
	// Time
	a: function() { return this.getHours() < 12 ? 'am' : 'pm'; },
	A: function() { return this.getHours() < 12 ? 'AM' : 'PM'; },
	B: function() { return "Not Yet Supported"; },
	g: function() { return this.getHours() == 0 ? 12 : (this.getHours() > 12 ? this.getHours() - 12 : this.getHours()); },
	G: function() { return this.getHours(); },
	h: function() { return (this.getHours() < 10 || (12 < this.getHours() < 22) ? '0' : '') + (this.getHours() < 10 ? this.getHours() + 1 : this.getHours() - 12); },
	H: function() { return (this.getHours() < 10 ? '0' : '') + this.getHours(); },
	i: function() { return (this.getMinutes() < 10 ? '0' : '') + this.getMinutes(); },
	s: function() { return (this.getSeconds() < 10 ? '0' : '') + this.getSeconds(); },
	// Timezone
	e: function() { return "Not Yet Supported"; },
	I: function() { return "Not Supported"; },
	O: function() { return (this.getTimezoneOffset() < 0 ? '-' : '+') + (this.getTimezoneOffset() / 60 < 10 ? '0' : '') + (this.getTimezoneOffset() / 60) + '00'; },
	T: function() { return "Not Yet Supported"; },
	Z: function() { return this.getTimezoneOffset() * 60; },
	// Full Date/Time
	c: function() { return "Not Yet Supported"; },
	r: function() { return this.toString(); },
	U: function() { return this.getTime() / 1000; }
}

参考链接:http://jacwright.com/projects/javascript/date_format
分享到:

相关推荐

    javascript中Date format(js日期格式化)方法小结.docx

    ### JavaScript中的Date Format(JS日期格式化)方法详解 #### 概述 在日常的Web开发工作中,我们经常需要处理日期和时间相关的数据。JavaScript 的 `Date` 对象提供了多种方法来获取和设置日期时间,但原生 API 并...

    DATE_FORMAT-Sql.rar_date format v2.21

    标题中的"DATE_FORMAT-Sql.rar_date format v2.21"表明这是一个关于SQL日期格式化的压缩包,可能包含了不同版本的实现或者一个特定版本的详细资料。描述中提到的"DATE_FORMAT时间Sql比较"和"for循环+hashmap"则暗示...

    优化Vue中date format的性能详解

    因此,文章中提出了一种优化Vue中date format性能的方法,即使用date-fns库替代moment.js,以减小打包后的文件体积。 首先,我们需要理解什么是Vue中的过滤器(filter)。在Vue中,过滤器是用于进行文本格式化的功能...

    javascript中Date format(js日期格式化)方法小结

    本文实例总结了javascript中日期格式化的方法。分享给大家供大家参考,具体如下: 方法一: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分...// (new Date()).Format("yyyy-M-d h:m

    Java date format时间格式化操作示例

    Java date format时间格式化操作示例 Java Date Format 是 Java 语言中用于格式化日期和时间的类库。DateFormat 类是 Java 的一个抽象类,它提供了将日期和时间转换为字符串的方法。通过使用 DateFormat,可以将...

    JS日期格式化之javascript Date format

    在上篇文章给大家介绍了js对Date对象的操作的问题(生成一个倒数7天的数组),本篇介绍有关js日期格式化之javascript Date format,本文通过三种方法给大家讲解,具体内容请看下文。 方法一: // 对Date的扩展,将 ...

    Mysql 日期时间 DATE_FORMAT(date,format)

    DATE_FORMAT(date,format) Formats the date value according to the format string. The following specifiers may be used in the format string. As of MySQL 3.23, the “%” character is required before ...

    Oracle的NLS_DATE_FORMAT设置(日期格式设置)_ITPUB博客.mhtml

    Oracle的NLS_DATE_FORMAT设置(日期格式设置)_ITPUB博客.mhtml

    html5 date日期格式转换

    之前在做app,ios程序员要求将html5的日期(2015年10月15日转换为2015-10-15),这里了用户的错觉来实现,简单粗暴

    js dateformat yyyy-MM-dd形式

    var date = format(new Date(), 'yyyy-MM-dd'); ``` 这两种库都大大简化了日期格式化的操作,特别是在处理各种复杂格式时。 此外,JavaScript ES2015引入了模板字符串,使字符串拼接更加简洁。如果使用模板字符串...

    MySQL中把varchar类型转为date类型方法详解

    值得注意的是,在Oracle中,如果varchar中的日期没有包含完整的时间部分(小时、分钟和秒),尝试转换为date类型时,会报错"ORA-01830: date format picture ends before converting entire input string"。...

    dateformatjs一个超轻量级的JS日期处理库

    例如,`dateFormat(date, format)` 方法接收两个参数:需要处理的日期对象和期望的输出格式。 ```javascript var now = new Date(); console.log(dateFormat(now, 'yyyy-mm-dd HH:mm:ss')); ``` ### 3. 多语言支持...

    Node.js-dateformat-一个优秀的node.js日期格化包

    使用 `dateformat` 的基本方法是先引入模块,然后创建一个 `date` 对象,最后调用 `format` 方法,传入所需的格式字符串。格式化字符串中的标记有多种,如 "dd" 表示两位数的日期,"mm" 代表两位数的月份,"yyyy" 则...

    jquery-dateFormat, 使用JavaScript格式化日期输出的jQuery插件.zip

    jquery-dateFormat, 使用JavaScript格式化日期输出的jQuery插件 使用JavaScript格式输出日期输出的jQuery dateformat插件- 拥有的,jQuery是最小的日期格式库。 ! 安装下载最新的jquery.dateFormat.js 或者 jquery....

    前端开源库-date_format

    因此,像"date_format"这样的开源库应运而生,它提供了更灵活的日期格式化规则,允许开发者根据需要定制日期的显示格式。 这个库可能包含以下关键特性: 1. **丰富的格式化选项**:类似PHP的`date()`函数,提供了...

    Julian date 转换工具

    方便实用的日期转换工具,Julian date &lt;=&gt; ISO Date format

    perl-Email-Date-Format-1.5.0-3

    搭建MHA时所需的包,MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10—30秒内),完成故障切换,部署MHA,可避免主从一致性问题,节约购买新服务器的费用...

    JavaScript DateFormat

    为了使用这个工具,首先需要引入`DateUtil.js`到你的JavaScript代码中,然后创建一个`Date`对象或者使用现有的`Date`对象,接着调用`format()`方法,传入日期对象和所需的格式字符串。 ```javascript // 引入...

Global site tag (gtag.js) - Google Analytics