- 浏览: 55877 次
- 性别:
- 来自: 上海
最新评论
-
judyfun:
太棒了。。。。提供的正式我想要的。
jquery-autoComplete 处理返回的json对象问题 -
mayi2010:
3楼写的很完整 提个问题 如果想传多个参数 怎么设置
jquery-autoComplete 处理返回的json对象问题 -
mayi2010:
这帖子 必须得顶
jquery-autoComplete 处理返回的json对象问题 -
kelly_zhang921:
boogie 写道JavaScript: $.getJS ...
jquery-autoComplete 处理返回的json对象问题 -
superbase:
通过验证了吗?6.0.18无法失败,无法共享SESSION。
tomcat 二级域名 共享session 方法
Although JavaScript provides a bunch of methods for getting and setting parts of a date object, it lacks a simple way to format dates and times according to a user-specified mask. There are a few scripts out there which provide this functionality, but I've never seen one that worked well for me… Most are needlessly bulky or slow, tie in unrelated functionality, use complicated mask syntaxes that more or less require you to read the documentation every time you want to use them, or don't account for special cases like escaping mask characters within the generated string.
When choosing which special mask characters to use for my JavaScript date formatter, I looked at PHP's date function and ColdFusion's discrete dateFormat and timeFormat functions. PHP uses a crazy mix of letters (to me at least, since I'm not a PHP programmer) to represent various date entities, and while I'll probably never memorize the full list, it does offer the advantages that you can apply both date and time formatting with one function, and that none of the special characters overlap (unlike ColdFusion where m
and mm
mean different things depending on whether you're dealing with dates or times). On the other hand, ColdFusion uses very easy to remember special characters for masks.
With my date formatter, I've tried to take the best features from both, and add some sugar of my own. It did end up a lot like the ColdFusion implementation though, since I've primarily used CF's mask syntax.
Before getting into further details, here are some examples of how this script can be used:
var now = new Date(); now.format("m/dd/yy"); // Returns, e.g., 6/09/07 // Can also be used as a standalone function dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT"); // Saturday, June 9th, 2007, 5:46:21 PM // You can use one of several named masks now.format("isoDateTime"); // 2007-06-09T17:46:21 // ...Or add your own dateFormat.masks.hammerTime = 'HH:MM! "Can\'t touch this!"'; now.format("hammerTime"); // 17:46! Can't touch this! // When using the standalone dateFormat function, // you can also provide the date as a string dateFormat("Jun 9 2007", "fullDate"); // Saturday, June 9, 2007 // Note that if you don't include the mask argument, // dateFormat.masks.default is used now.format(); // Sat Jun 09 2007 17:46:21 // And if you don't include the date argument, // the current date and time is used dateFormat(); // Sat Jun 09 2007 17:46:22 // You can also skip the date argument (as long as your mask doesn't // contain any numbers), in which case the current date/time is used dateFormat("longTime"); // 5:46:22 PM EST // And finally, you can convert local time to UTC time. Either pass in // true as an additional argument (no argument skipping allowed in this case): dateFormat(now, "longTime", true); now.format("longTime", true); // Both lines return, e.g., 10:46:21 PM UTC // ...Or add the prefix "UTC:" to your mask. now.format("UTC:h:MM:ss TT Z"); // 10:46:21 PM UTC
Following are the special characters supported. Any differences in meaning from ColdFusion's dateFormat
and timeFormat
functions are noted.
d |
Day of the month as digits; no leading zero for single-digit days. |
dd |
Day of the month as digits; leading zero for single-digit days. |
ddd |
Day of the week as a three-letter abbreviation. |
dddd |
Day of the week as its full name. |
m |
Month as digits; no leading zero for single-digit months. |
mm |
Month as digits; leading zero for single-digit months. |
mmm |
Month as a three-letter abbreviation. |
mmmm |
Month as its full name. |
yy |
Year as last two digits; leading zero for years less than 10. |
yyyy |
Year represented by four digits. |
h |
Hours; no leading zero for single-digit hours (12-hour clock). |
hh |
Hours; leading zero for single-digit hours (12-hour clock). |
H |
Hours; no leading zero for single-digit hours (24-hour clock). |
HH |
Hours; leading zero for single-digit hours (24-hour clock). |
M |
Minutes; no leading zero for single-digit minutes. Uppercase M unlike CF timeFormat 's m to avoid conflict with months. |
MM |
Minutes; leading zero for single-digit minutes. Uppercase MM unlike CF timeFormat 's mm to avoid conflict with months. |
s |
Seconds; no leading zero for single-digit seconds. |
ss |
Seconds; leading zero for single-digit seconds. |
l or L |
Milliseconds. l gives 3 digits. L gives 2 digits. |
t |
Lowercase, single-character time marker string: a or p. No equivalent in CF. |
tt |
Lowercase, two-character time marker string: am or pm. No equivalent in CF. |
T |
Uppercase, single-character time marker string: A or P. Uppercase T unlike CF's t to allow for user-specified casing. |
TT |
Uppercase, two-character time marker string: AM or PM. Uppercase TT unlike CF's tt to allow for user-specified casing. |
Z |
US timezone abbreviation, e.g. EST or MDT. With non-US timezones or in the Opera browser, the GMT/UTC offset is returned, e.g. GMT-0500 No equivalent in CF. |
o |
GMT/UTC timezone offset, e.g. -0500 or +0230. No equivalent in CF. |
S |
The date's ordinal suffix (st, nd, rd, or th). Works well with d .No equivalent in CF. |
'…' or "…" |
Literal character sequence. Surrounding quotes are removed. No equivalent in CF. |
UTC: |
Must be the first four characters of the mask. Converts the date from local time to UTC/GMT/Zulu time before applying the mask. The "UTC:" prefix is removed. No equivalent in CF. |
And here are the named masks provided by default (you can easily change these or add your own):
default | ddd mmm dd yyyy HH:MM:ss | Sat Jun 09 2007 17:46:21 |
shortDate | m/d/yy | 6/9/07 |
mediumDate | mmm d, yyyy | Jun 9, 2007 |
longDate | mmmm d, yyyy | June 9, 2007 |
fullDate | dddd, mmmm d, yyyy | Saturday, June 9, 2007 |
shortTime | h:MM TT | 5:46 PM |
mediumTime | h:MM:ss TT | 5:46:21 PM |
longTime | h:MM:ss TT Z | 5:46:21 PM EST |
isoDate | yyyy-mm-dd | 2007-06-09 |
isoTime | HH:MM:ss | 17:46:21 |
isoDateTime | yyyy-mm-dd'T'HH:MM:ss | 2007-06-09T17:46:21 |
isoUtcDateTime | UTC:yyyy-mm-dd'T'HH:MM:ss'Z' | 2007-06-09T22:46:21Z |
A couple issues:
- In the unlikely event that there is ambiguity in the meaning of your mask (e.g.,
m
followed bymm
, with no separating characters), put a pair of empty quotes between your metasequences. The quotes will be removed automatically. - If you need to include literal quotes in your mask, the following rules apply:
- Unpaired quotes do not need special handling.
- To include literal quotes inside masks which contain any other quote marks of the same type, you need to enclose them with the alternative quote type (i.e., double quotes for single quotes, and vice versa). E.g.,
date.format('h "o\'clock, y\'all!"')
returns "6 o'clock, y'all". This can get a little hairy, perhaps, but I doubt people will really run into it that often. The previous example can also be written asdate.format("h") + "o'clock, y'all!"
.
Here's the code:
/* * Date Format 1.2.2 * (c) 2007-2008 Steven Levithan <stevenlevithan.com> * MIT license * Includes enhancements by Scott Trenda <scott.trenda.net> and Kris Kowal <cixar.com/~kris.kowal/> * * Accepts a date, a mask, or a date and a mask. * Returns a formatted version of the given date. * The date defaults to the current date/time. * The mask defaults to dateFormat.masks.default. */ var dateFormat = function () { var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, pad = function (val, len) { val = String(val); len = len || 2; while (val.length < len) val = "0" + val; return val; }; // Regexes and supporting functions are cached through closure return function (date, mask, utc) { var dF = dateFormat; // You can't provide utc if you skip other args (use the "UTC:" mask prefix) if (arguments.length == 1 && (typeof date == "string" || date instanceof String) && !/\d/.test(date)) { mask = date; date = undefined; } // Passing date through Date applies Date.parse, if necessary date = date ? new Date(date) : new Date(); if (isNaN(date)) throw new SyntaxError("invalid date"); mask = String(dF.masks[mask] || mask || dF.masks["default"]); // Allow setting the utc argument via the mask if (mask.slice(0, 4) == "UTC:") { mask = mask.slice(4); utc = true; } var _ = utc ? "getUTC" : "get", d = date[_ + "Date"](), D = date[_ + "Day"](), m = date[_ + "Month"](), y = date[_ + "FullYear"](), H = date[_ + "Hours"](), M = date[_ + "Minutes"](), s = date[_ + "Seconds"](), L = date[_ + "Milliseconds"](), o = utc ? 0 : date.getTimezoneOffset(), flags = { d: d, dd: pad(d), ddd: dF.i18n.dayNames[D], dddd: dF.i18n.dayNames[D + 7], m: m + 1, mm: pad(m + 1), mmm: dF.i18n.monthNames[m], mmmm: dF.i18n.monthNames[m + 12], yy: String(y).slice(2), yyyy: y, h: H % 12 || 12, hh: pad(H % 12 || 12), H: H, HH: pad(H), M: M, MM: pad(M), s: s, ss: pad(s), l: pad(L, 3), L: pad(L > 99 ? Math.round(L / 10) : L), t: H < 12 ? "a" : "p", tt: H < 12 ? "am" : "pm", T: H < 12 ? "A" : "P", TT: H < 12 ? "AM" : "PM", Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] }; return mask.replace(token, function ($0) { return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); }); }; }(); // Some common format strings dateFormat.masks = { "default": "ddd mmm dd yyyy HH:MM:ss", shortDate: "m/d/yy", mediumDate: "mmm d, yyyy", longDate: "mmmm d, yyyy", fullDate: "dddd, mmmm d, yyyy", shortTime: "h:MM TT", mediumTime: "h:MM:ss TT", longTime: "h:MM:ss TT Z", isoDate: "yyyy-mm-dd", isoTime: "HH:MM:ss", isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" }; // Internationalization strings dateFormat.i18n = { dayNames: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ] }; // For convenience... Date.prototype.format = function (mask, utc) { return dateFormat(this, mask, utc); };
转载:http://blog.stevenlevithan.com/archives/date-time-format
发表评论
-
tomcat 二级域名 共享session 方法
2010-06-02 10:46 5115Tomcat下,不同的二级域名,Session默认 ... -
JSDoc注释使用
2009-10-28 14:23 1992JSDoc注释使用 JSDoc通过J ... -
Javascript的IE和Firefox兼容性汇编
2009-04-11 18:27 910微软关于IE、Firefox、Opera和Safari的Jav ... -
当下10大最热门的网站开发技术
2009-02-03 01:06 1148NETTUTS上列出10大最吃香 ... -
js日期时间函数(经典+完善+实用)
2009-01-02 02:05 1613Date.prototype.isLeapYear 判断闰年D ... -
jquery-autoComplete 处理返回的json对象问题
2008-12-16 22:47 19051由于项目中需要autocomplete,且项目中一直 ... -
240个jQuery实现AJAX插件
2008-11-17 15:34 2019概述 jQuery 是继 prototype 之后又一个 ... -
google-map pdmarker 一些简单用例
2008-11-09 09:38 2089■Sample HTML<html xmlns=&quo ... -
[转}李开复:算法的力量
2008-02-19 21:17 1145算法是计算机科学领域 ...
相关推荐
在上篇文章给大家介绍了js对Date对象的操作的问题(生成一个倒数7天的数组),本篇介绍有关js日期格式化之javascript Date format,本文通过三种方法给大家讲解,具体内容请看下文。 方法一: // 对Date的扩展,将 ...
### JavaScript中的Date Format(JS日期格式化)方法详解 #### 概述 在日常的Web开发工作中,我们经常需要处理日期和时间相关的数据。JavaScript 的 `Date` 对象提供了多种方法来获取和设置日期时间,但原生 API 并...
在JavaScript中,日期格式化是将Date对象转换成特定字符串格式的过程。这通常涉及到自定义日期的显示方式,如年、月、日、小时、分钟、秒等。本篇文章将重点介绍两种常见的JavaScript日期格式化技巧。 方法一: 这...
为了使用这个工具,首先需要引入`DateUtil.js`到你的JavaScript代码中,然后创建一个`Date`对象或者使用现有的`Date`对象,接着调用`format()`方法,传入日期对象和所需的格式字符串。 ```javascript // 引入...
标题中的"DATE_FORMAT-Sql.rar_date format v2.21"表明这是一个关于SQL日期格式化的压缩包,可能包含了不同版本的实现或者一个特定版本的详细资料。描述中提到的"DATE_FORMAT时间Sql比较"和"for循环+hashmap"则暗示...
"前端开源库-date_format" 提供了一个类似于PHP的JS日期格式化功能,使得JavaScript在处理日期时更加便捷。这个开源库可能是为了弥补JavaScript内置的Date对象在格式化方面的不足,提供了更丰富的选项和更易用的API...
在实际项目中,除了自定义实现外,还可以考虑使用一些成熟的JavaScript日期库,如`moment.js`或`date-fns`,它们提供了丰富的日期处理功能,包括格式化、解析、比较等,且通常更稳定、测试更充分。然而,如果你需要...
标题提到的"javascript-date-format"项目就是为了解决这个问题,它为Date对象添加了一个`format`方法,使得我们可以方便地将日期对象转换为各种格式的字符串。 首先,我们需要理解Date对象的基本用法。在JavaScript...
在JavaScript中,日期和时间处理是一项常见的任务,`Date`对象是JavaScript内置的处理日期和时间的类。当我们需要将日期格式化为"yyyy-MM-dd"这种格式时,JavaScript提供了多种方法来实现这一需求。这个格式通常用于...
jquery-dateFormat, 使用JavaScript格式化日期输出的jQuery插件 使用JavaScript格式输出日期输出的jQuery dateformat插件- 拥有的,jQuery是最小的日期格式库。 ! 安装下载最新的jquery.dateFormat.js 或者 jquery....
`date-fn.js`是一个轻量级且模块化的JavaScript日期库,它提供了处理日期和时间的强大功能,旨在作为Moment.js的替代品。该库遵循函数式编程原则,使其更易于理解和使用。以下是对`date-fn.js`核心特性和用法的详细...
Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, // month "d+": this.getDate(), // day "h+": this.getHours(), // hour "m+": this.getMinutes(), // minute "s+": ...
"Format Date with Date Picker using Jquery.zip"这个资源显然提供了一个使用jQuery和日期选择器来格式化日期的示例。在这个场景中,我们将探讨如何使用jQuery UI的日期选择器插件来实现日期选择功能,并对选中的...
var nycTime = new Intl.DateTimeFormat('en-US', { timeZone: 'America/New_York' }).format(date); console.log(nycTime); ``` 接下来,引入Ajax技术。Ajax的核心是XMLHttpRequest对象,它可以异步地向服务器发送...
javascript格式化代码 js格式化代码
### JavaScript中Date类型常用操作详解 #### 一、概述 在JavaScript编程中,处理日期与时间是一项常见且重要的任务。JavaScript 提供了内置的 `Date` 对象来帮助开发者进行日期与时间的操作。本文将详细介绍一些...
在JavaScript中,我们可以使用内置的`Date`对象来创建、操作和格式化日期。 首先,`Date`对象是JavaScript中的内置构造函数,可以用来创建一个新的日期实例。例如: ```javascript let date = new Date(); // 创建...
"js 时间转换"、"js format"以及"js相减"都是JavaScript编程中与日期和时间相关的关键概念。下面将详细讲解这些知识点。 首先,"js 时间转换"涉及到JavaScript的内置Date对象。Date对象允许我们创建、操作和格式化...