针对自己在日常用到的一些日期方法,整理成一个js日期插件,插件定义了一个dates全局对象,继承了Date函数,相当于在Date函数上做了一些扩展。

这个插件会不断更新,所有我之后用到的关于日期的自定义方法都会放到这个插件。

 /**
* 功能描述:针对JS自身的Date对象做了一些更符合使用习惯的扩充和改进
*
*/
/*
* 继承Date
*/
var dates = new Date(); //Object.create(Date);
/*
* 改进Date对象提供的getMonth方法
*/
dates.getMonth = function(){
let a = new Date();
return a.getMonth() + 1;
}
/*
* 返回年月日
* @tag:设置分隔符,如果不设置,默认使用"-"
*/
dates.getYMD = function(tag){
var tag = (tag === null || tag === undefined || tag === ""?"-":tag);
tag = new String(tag);
var ymd =
dates.getFullYear() + tag +
dates.getMonth() + tag +
dates.getDate();
return ymd;
}
/*
* 返回时分秒
* @tag:设置分隔符,如果不设置,默认使用":"
*/
dates.getHMS = function(tag){
var tag = (tag === null || tag === undefined || tag === ""?":":tag);
tag = new String(tag);
var hms =
dates.getHours() + tag +
dates.getMinutes() + tag +
dates.getSeconds();
return hms;
}
/*
* 返回年月日时分秒
*/
dates.getFullTime = function(){
switch (arguments.length){ //完整的包括三个参数,年月日直接的分隔符,时分秒直接的分隔符,年月日和时分秒之间的分隔符
case 0:
//使用默认形式
return dates.getYMD() + " " + dates.getHMS();
break;
case 1:
//一个参数是全部使用该分隔符
return dates.getYMD(arguments[0]) + arguments[0] + dates.getHMS(arguments[0]);
break;
case 2:
//两个参数是仅设置年月日和时分秒的分隔符
return dates.getYMD(arguments[0]) + " " + dates.getHMS(arguments[1]);
break;
case 3:
//三个参数是设置完整参数
return dates.getYMD(arguments[0]) + arguments[1] + dates.getHMS(arguments[2]);
break;
default:
return dates.getYMD(arguments[0]) + arguments[1] + dates.getHMS(arguments[2]);
break;
}
}
/*
* 返回12小时制的时间
*/
dates.get12Hour = function(){
return (dates.getHours() < 12?dates.getHours():dates.getHours()-12);
}
/*
* 返回以当前日期为准,明天的日期
*/
dates.getTomorrow = function(tag){
var tag = (tag === null || tag === undefined || tag === ""?"-":tag);
tag = new String(tag);
tomo = dates.getDate() + 1;
var ymd =
dates.getFullYear() + tag +
dates.getMonth() + tag +
tomo;
return ymd;
}

这其中有个问题,就是特殊字符,以字符的形式输入特殊字符没问题,但如果直接把特殊字符(如@#¥%&*等)作为参数传入就会报错,不太知道如何保证使用简便的前提下处理这个问题。

关于日期的一些常用方法的封装——dates.js的更多相关文章

  1. JsQuick--个人封装的Js库

    JsQuick 该库为本人封装的Js库,尚未进行浏览器兼容 /** * 快速框架 版本:1.0.0 * 日期:2015.02.26 * 作者:简楚恩 */ /** * 快速获取控件类 */ var $ ...

  2. JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法)

    JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法) 一丶正则的用法 创建正则对象: 方式一: var reg=new ...

  3. js 日期计算星座 根据生日的月份和日期,一行代码计算星座的js小函数(转)

    本博客根据 开源中国作者清风徐不来 的文章 根据生日的月份和日期,一行代码计算星座的js小函数(转) 原文出自CSDN 无心的专栏 的文章,知识产权归原文作者所有! 点击查看原文:js 日期计算星座

  4. JavaScript数组常用方法解析和深层次js数组扁平化

    前言 数组作为在开发中常用的集合,除了for循环遍历以外,还有很多内置对象的方法,包括map,以及数组筛选元素filter等. 注:文章结尾处附深层次数组扁平化方法操作. 作为引用数据类型的一种,在处 ...

  5. Java日期时间处理常用方法

    虽然是老生常谈,但整理出来还是有点用. 1.由字符串时间得到Date类型时间 // 由字符串时间得到Date类型时间 public static Date getDateFrom(String str ...

  6. 【前端学习笔记】JavaScript 常用方法兼容性封装

    获取样式函数封装 function getStyle(ele,attr){ if(ele.currentStyle){ return ele.currentStyle[attr]; } else{ r ...

  7. JS基石之-----常用方法封装的js库

    解析 URL Params 为对象 let url = 'http://www.domain.com/?user=anonymous&id=123&id=456&city=%E ...

  8. 【转】封装原生JS实现Ajax

    function createXHR() { if (window.XMLHttpRequest) { //IE7+.Firefox.Opera.Chrome 和Safari return new X ...

  9. javascript - 封装原生js实现ajax

    1 /* * ajax方法 */ var Ajax = function() { var that = this; //创建异步请求对象方法 that.createXHR = function() { ...

随机推荐

  1. Java 双亲委派模型

    1. Java 类加载器的分类 2. 双亲委派模型 Parents Delegration Model

  2. poj 2002 Squares 几何二分 || 哈希

    Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 15137   Accepted: 5749 Descript ...

  3. 3.springioc bean 的几个属性

    1.lazy-init="false" 默认值为false,指的是bean的创建时机的spring容器一启动就会加载这些类.有点是及时发现bean的相关错误,因为spring容器启 ...

  4. C#学习笔记(基础知识回顾)之枚举

    一:枚举的含义 枚举是用户定义的整数类型.在声明一个枚举时,要指定该枚举的示例可以包含的一组可接受的值.还可以给值指定易于记忆的名称.个人理解就是为一组整数值赋予意义. 二:枚举的优势 2.1:枚举可 ...

  5. PAT 1074. Reversing Linked List

    #include <cstdio> #include <cstdlib> #include <iostream> #include <unordered_ma ...

  6. python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块

    一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...

  7. dsu on tree(CF600E Lomsat gelral)

    题意 一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和. dsu on tree 用来解决子树问题 好像不能带修改?? 暴力做这个题,就是每次扫一遍子树统 ...

  8. MongoDB 投影

    mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个.例如一个文档有5个字段,只需要显示其中3个 find() 方法 在MongoDB中,当执行find()方法,那么它会显示一个文 ...

  9. php 空格无法替换,utf-8空格惹的祸

    一次坑爹的小bug.读取一段文字(编码utf-8),想替换掉空格,str_replace(" "..).preg_replace("/\s/"..)都不起作用. ...

  10. 自动化测试基础篇--Selenium unittest简介

    一.什么是unittest unittest是Python单元测试框架,类似于JUnit框架. unittest中有4个重要的概念:test fixture, test case, test suit ...