`
honghuihun
  • 浏览: 9314 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

JS的时间format格式化以及获得N天之前或之后的时间的方法

阅读更多
今天找了下有关时间格式化的方法,网上的方法五花八门,现在分享一个比较上手比较方便的
/**
* 对Date的扩展,将 Date 转化为指定格式的String
* 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符
* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
* eg:
* (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
* (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04
* (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04
* (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04
* (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
*/
Date.prototype.pattern=function(fmt) {
    var o = {
    "M+" : this.getMonth()+1, //月份
    "d+" : this.getDate(), //日
    "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时
    "H+" : this.getHours(), //小时
    "m+" : this.getMinutes(), //分
    "s+" : this.getSeconds(), //秒
    "q+" : Math.floor((this.getMonth()+3)/3), //季度
    "S" : this.getMilliseconds() //毫秒
    };
    var week = {
    "0" : "\u65e5",
    "1" : "\u4e00",
    "2" : "\u4e8c",
    "3" : "\u4e09",
    "4" : "\u56db",
    "5" : "\u4e94",
    "6" : "\u516d"
    };
    if(/(y+)/.test(fmt)){
        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
    if(/(E+)/.test(fmt)){
        fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[this.getDay()+""]);
    }
    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;
}

//var date = new Date();
//window.alert(date.pattern("yyyy-MM-dd hh:mm:ss"));

例子已经写在方法的开头,简单易用,再加个获得N天之前或N天之后的方法
/**
* 对Date的扩展,获得(n>0  n天之前)(n<0  n天之后)的指定格式的时间string
* eg: 今天2011-08-02
* showDate(-7, "yyyy-MM-dd") ==> 获得7天前年月日2011-07-26
* showDate(3, "yyyy-MM-dd") ==> 获得3天后年月日2011-08-05
*/
function showDate(n, fmt) {
	return new Date(new Date()-0+n*86400000).pattern(fmt);
}
分享到:
评论

相关推荐

    JS中格式化数字的5个方法

    根据提供的文件信息,本文将详细介绍JavaScript中五种常用的数字格式化方法:`CurrencyFormatted`、`format_number`、`CommaFormatted`、`addCommas` 和 `number_format`。这些函数可以帮助开发者更加灵活地处理和...

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

    总的来说,`dateformat.js` 是一个强大且实用的日期处理工具,它提供了丰富的日期格式化选项,简单易用的API,以及良好的国际化支持。无论是在小规模的个人项目还是大型的企业应用中,都能找到它的一席之地。

    Date格式化

    在编程领域,日期格式化是将日期对象转换为人类可读字符串的过程,这通常涉及到日期时间的表示方式、格式约定以及区域设置。`Date`格式化在Java、JavaScript、Python等许多编程语言中都非常重要,因为正确处理日期和...

    js 时间计算(加减天数、返回当前时间后一个星期的日期,返回格式yyyy-MM-dd)

    总的来说,JavaScript中的日期操作并不复杂,但需要理解`Date`对象的方法和日期格式化的原理。通过上述方法,你可以轻松地对日期进行加减运算,并将其格式化为所需的样式。在实际开发中,还可以根据需求扩展功能,...

    js多语言(国际化)i8n的实现思路及方法

    对于日期、数字和其他需要特定格式化的内容,可以使用JavaScript内置的`Intl.DateTimeFormat`和`Intl.NumberFormat`对象。例如: ```javascript var date = new Date(); var formatter = new Intl.DateTimeFormat('...

    格式化写入文件程序

    例如,使用`print()`的`sep`和`end`参数控制间隔和行结束符,使用`format()`方法通过占位符{}和对应的键值对实现复杂的格式化。 ```python with open('output.txt', 'w') as f: f.write('{:&lt;10}{:&gt;10}'.format('...

    time-formatter-js:js时间类型格式化工具库(兼容的IE):自定义时间格式,时间排序,间隔天数,前n天的日期。

    一个简单易用的js时间类型格式化工具库(兼容IE)大小:4KB 例子: //引入timeFormatter.js //使用方式非常简单,创建一个timeFormatter实例,传入的对象可省略 var timeFormatter = new TimeFormatter({ ...

    JavaScript格式化json和xml的方法示例

    3. 根据 `options` 参数决定是否在冒号 `:` 之后和大括号 `{` 或方括号 `[` 之前换行,以及是否在冒号后面添加空格。 4. 分割处理好的JSON字符串为数组,并通过遍历该数组来根据数据结构动态地添加缩进,从而进一步...

    js 国际化实现

    JavaScript(简称JS)国际化(i18n,国际化英文单词“internationalization”的缩写)是为网站或应用程序提供多语言支持的过程。这个过程涉及到将文本、日期、数字和其他文化特定的元素从源语言(通常是英语)转换成...

    js日期时间格式验证,时间比较

    在JavaScript中处理日期时间是常见的需求之一,尤其是在进行数据验证、格式化输出或日期计算时。本篇将详细介绍如何利用JavaScript进行日期时间的格式化、计算以及验证等操作。 #### 1. 日期格式化 (Format) 通过...

    Javascript-Date-Format-Object:日期和时间 - 在 JavaScript 中格式化日期或时间

    日期和时间 - 在 JavaScript 中格式化日期或时间 使用示例 初始化 &lt; script src =" m_date.js " type =" text/Javascript " charset =" utf-8 " &gt; &lt;/ script &gt; &lt; script type =" text/javascript ...

    jsonFomat格式化json数据

    为了解决这个问题,我们可以编写一个JavaScript函数或使用现成的库来对JSON进行美化和格式化,使其更易于理解。以下是一个简单的JavaScript方法,用于格式化JSON数据: ```javascript function formatJson(json) { ...

    Notepad++的html格式化工具Tidy2

    使用Tidy2格式化HTML文档时,只需选中要格式化的代码,然后在“Plugins” -&gt; “Tidy2”菜单中选择相应的操作,如“Clean and Repair”(清理并修复)或者“Format Document”(格式化文档)。Tidy2会即时处理所选...

    the_time:javascript 时间日期格式化

    在JavaScript中,有多种方法可以处理日期和时间,包括内置的Date对象、第三方库如Moment.js,以及ES6之后引入的新的API。 1. **JavaScript内置的Date对象** JavaScript的`Date`对象是处理日期和时间的基本工具。你...

    Python格式化压缩后的JS文件的方法

    为了更全面地处理各种压缩后的JS文件,可以考虑使用专门的JS格式化库,例如`Prettier`或`ESLint`,它们通常能提供更强大的格式化功能,包括处理各种语法结构、注释和编码风格。然而,这些库通常是JavaScript原生的,...

    Vue2x的下拉时间选择器小时分钟秒支持灵活的时间格式

    这可以通过使用`moment.js`或`date-fns`等库来处理时间格式化,或者使用Vue的`vue-i18n`插件进行全局的国际化设置。 6. **无障碍性**: - 对于无障碍性,确保组件遵循Web Content Accessibility Guidelines (WCAG)...

    js实现时间显示几天前、几小时前或者几分钟前的方法集锦

    使用时,需要实例化PrettyTime对象,并调用其format方法来格式化时间对象。这种方式尤其适合那些不想自己编写太多时间处理逻辑代码的开发者,因为它封装了许多常用的时间格式化逻辑。 自定义Java方法则提供了一种...

    moment.js luxon.js

    对于`moment.js`,你可以通过`moment.locale()`方法设置或获取当前的语言环境,然后`moment().format()`将按照该语言环境的规则进行日期时间格式化。`luxon.js` 也提供了类似的机制,如`DateTime.local().locale('zh...

    js实现的格式化数字和金额功能简单示例

    本文实例讲述了js实现的格式化数字和金额功能。分享给大家供大家参考,具体如下: 格式化数字,格式化金额: function number_format(number, decimals, dec_point, thousands_sep) { /* * 参数说明: * number...

    js字符串的各种格式的转换 ToString,Format

    除了`toString()`方法,JavaScript中的字符串格式化还常借助于`String.prototype.format()`方法或`string.format()`函数(在某些库中提供,如jQuery的`$.format`)。例如`string.Format("{0:f}", System.DateTime....

Global site tag (gtag.js) - Google Analytics