针对自己在日常用到的一些日期方法,整理成一个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:模拟栈操作

    import java.util.ArrayList; public class MyStack { private ArrayList<Object> arrayList; public ...

  2. shutil的一些基本用法

    import shutil import time import tarfile # 将文件内容拷贝到另一个文件中 shutil.copyfileobj(open('a1', 'r'), open(' ...

  3. Bookmarklet编写指南

    作者: 阮一峰 日期: 2011年6月11日 前一段日子,我写了两个Bookmarklet----"短网址生成"和"短网址还原". 它们用起来很方便,除了我本人 ...

  4. Django之ModelForm使用

    一:什么是ModelForm呢? Model + Form ==> ModelForm.model和form的结合体,所以有以下功能: 数据验证 数据库操作 model有操作数据库的字段,for ...

  5. 【javascript】javasrcipt设计模式之策略模式

    策略模式支持在运行时由使用者选择合适的算法,对于使用者而言不用关心背后的具体事项,而使用者自动根据当前程序执行的上下文和配置,从已有的算法列表中选择出合适的算法来处理当前任务. 1.要解决的问题 2. ...

  6. spring cloud Eureka server配置

    参考:http://www.ityouknow.com/springcloud/2017/05/10/springcloud-eureka.html spring boot版本:2.0.3.RELEA ...

  7. TPS和事务响应时间的关系、计算公式 (转)

    例子:一个高速路有10个入口,每个入口每秒钟只能进1辆车1.请问1秒钟最多能进几辆车?   TPS=102.每辆车需要多长时间进行响应?   reponse time = 13.改成20辆车,每秒能进 ...

  8. eclipse 乱码问题总结

    Eclipse 的控制台必须用GBK编码.所以条件1和条件4必须同时满足否则运行的还是乱码.才能保证不是乱码. 条件1,Window  | Preferences  | Workspace  |  T ...

  9. 【Oracle】等待事件详细内容

    一.等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不 ...

  10. python基础——Linux系统下的文件目录结构

    单用户操作系统和多用户操作系统 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源. 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户 ...