js Date对象的扩展函数

简介:

日期 http://momentjs.com/

Java代码   收藏代码
  1. <script type="text/javascript">  
  2. Date.prototype.format = function(format) {  
  3.     var o = {  
  4.         "M+"this.getMonth() + 1,  
  5.         //month  
  6.         "d+"this.getDate(),  
  7.         //day  
  8.         "h+"this.getHours(),  
  9.         //hour  
  10.         "m+"this.getMinutes(),  
  11.         //minute  
  12.         "s+"this.getSeconds(),  
  13.         //second  
  14.         "q+": Math.floor((this.getMonth() + 3) / 3),  
  15.         //quarter  
  16.         "S"this.getMilliseconds() //millisecond  
  17.     }  
  18.     if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));  
  19.     for (var k in o)  
  20.     if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));  
  21.     return format;  
  22. }  
  23. // 日期相差天数  
  24. Date.prototype.diff = function(date){  
  25.     return Math.ceil((this - date) / (1000 * 60 * 60 * 24));  
  26. }  
  27.   
  28. // 日期加减计算  
  29. Date.prototype.add = function(days){  
  30.     return new Date(this.getTime() + days * (1000 * 60 * 60 * 24));  
  31. }  
  32.   
  33. // 日期加减计算  
  34. Date.prototype.addMonth = function(months){  
  35.     var day = this.getDate();  
  36.     var month = this.getMonth() + 1;  
  37.     var year = this.getFullYear();  
  38.     month += months;  
  39.     if(month > 12){  
  40.         year += Math.floor(month / 12);  
  41.         month = month % 12;  
  42.     }  
  43.     return Date.parse(month + '/' + day + '/' + year);  
  44. }  
  45. var ddd = new Date();  
  46. document.write(ddd.format('yyyy-MM-dd'));  
  47. </script>  
 

对象

Java代码   收藏代码
  1. Object.prototype.clone = function()  
  2. {  
  3.     if(typeof(this) != "object")  
  4.         return this;  
  5.   
  6.     var $cloneDepth = (arguments.length >= 1) ? ((isNaN(parseInt(arguments[0]))) ? null : parseInt(arguments[0])) : null;  
  7.     if($cloneDepth)  
  8.         $cloneDepth = ($cloneDepth <= 0) ? null : $cloneDepth;  
  9.   
  10.     var $cloneObject = null;  
  11.     var $thisConstructor = this.constructor;  
  12.     var $thisConstructorPrototype = $thisConstructor.prototype;  
  13.   
  14.     if($thisConstructor == Array)  
  15.         $cloneObject = new Array();  
  16.     else if($thisConstructor == Object)  
  17.         $cloneObject = new Object();  
  18.     else  
  19.     {  
  20.         try  
  21.         {  
  22.             $cloneObject = new $thisConstructor;  
  23.         }  
  24.         catch(e)  
  25.         {  
  26.             $cloneObject = new Object();  
  27.             $cloneObject.constructor = $thisConstructor;  
  28.             $cloneObject.prototype = $thisConstructorPrototype;  
  29.         }  
  30.     }  
  31.   
  32.     var $propertyName = "";  
  33.     var $newObject = null;  
  34.   
  35.     for($propertyName in this)  
  36.     {  
  37.         $newObject = this[$propertyName];  
  38.   
  39.         if(!$thisConstructorPrototype[$propertyName])  
  40.         {  
  41.             if(typeof($newObject) == "object")  
  42.             {  
  43.                 if($newObject === null)  
  44.                     $cloneObject[$propertyName] = null;  
  45.                 else  
  46.                 {  
  47.                     if($cloneDepth)  
  48.                     {  
  49.                         if($cloneDepth == 1)  
  50.                             $cloneObject[$propertyName] = $newObject;  
  51.                         else  
  52.                             $cloneObject[$propertyName] = $newObject.clone(--$cloneDepth);  
  53.                     }  
  54.                     else  
  55.                         $cloneObject[$propertyName] = $newObject.clone();  
  56.                 }  
  57.             }  
  58.             else  
  59.                 $cloneObject[$propertyName] = $newObject;  
  60.         }  
  61.     }  
  62.   
  63.     return $cloneObject;  
  64. }  

ss

相关文章
|
1月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
77 19
|
8月前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
3月前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
113 23
|
3月前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
5月前
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
120 32
|
4月前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
8月前
|
JSON 前端开发 JavaScript
JavaScript中对象的数据拷贝
本文介绍了JavaScript中对象数据拷贝的问题及解决方案。作者首先解释了对象赋值时地址共享导致的值同步变化现象,随后提供了五种解决方法:手动复制、`Object.assign`、扩展运算符、`JSON.stringify`与`JSON.parse`组合以及自定义深拷贝函数。每种方法都有其适用场景和局限性,文章最后鼓励读者关注作者以获取更多前端知识分享。
85 1
JavaScript中对象的数据拷贝
|
7月前
|
机器学习/深度学习 JavaScript Cloud Native
Node.js作为一种快速、可扩展的服务器端运行时环境
Node.js作为一种快速、可扩展的服务器端运行时环境
124 8
|
8月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
154 2
|
7月前
|
前端开发 JavaScript 应用服务中间件
Nginx 支持 JavaScript:前所未有的扩展
Nginx 是全球领先的高性能 Web 服务器,以其高效的反向代理和负载均衡功能著称。近期,Nginx 正式支持 JavaScript(通过 NJS 模块),基于 V8 引擎,允许在配置中嵌入 JS 代码,极大提升了灵活性和扩展性。开发者可以使用 JavaScript 实现动态请求处理、自定义认证、复杂响应处理、中间件编写及流量控制等功能,显著降低开发和维护难度,同时保持高性能。NJS 模块的引入为 Nginx 带来了前所未有的扩展能力,适应快速变化的业务需求。
142 0

热门文章

最新文章