JS时间操作大全

1、获取每个月的开始和结束。

2、获取每个季度的开始和结束。

3、获取当前季度。

4、把日期转换为字符串(支持各种格式)

...

5、未完待续,不断添加
 String.prototype.padingStar=function(totalLength,padingStr="") {
            if (totalLength <= this.length) {
                return this;
            }
            var padLength = totalLength - this.length;
            if (padLength <= padingStr.length) {
                return padingStr.substring(0, padLength) + this;
            } else {
                var len = padLength / padingStr.length, n = 1,str='';
                while (n<len) {
                    str += padingStr;
                    n++;
                }
                return str + padingStr.substring(0, padLength - (n-1) * padingStr.length) +this;
            }
        }

        String.prototype.padingEnd = function (totalLength, padingStr="") {
            //在开始的补全后面
            if (totalLength <= this.length) {
                return this;
            }
            var padLength = totalLength - this.length;
            if (padLength <= padingStr.length) {
                return padingStr.substring(0, padLength) + this;
            } else {
                var len = padLength / padingStr.length, n = 0,str='';
                while (n<len) {
                    str += padingStr;
                    n++;
                }
                return this + padingStr.substring(0, padLength - (n - 1) * padingStr.length)+str;
            }
        }

        //获取当前月的开始
        Date.prototype.starOfMonth=function() {
            return new Date(this.getFullYear(), this.getMonth(), 1, 00, 00, 00);
        }

        //获取当前月的结束
        Date.prototype.endOfMonth=function() {
            return new Date(this.getFullYear(), this.getMonth() + 1, 0, 23, 59, 59);
        }

        //获取当前季度的开始时间
        Date.prototype.starofQuarter=function() {
            return new Date(this.getFullYear(), (this.getQuarter() - 1) * 3, 01, 00, 00, 00);
        }

        //获取当前季度的结束时间
        Date.prototype.endofQuarter=function() {
            return new Date(this.getFullYear(), this.getQuarter() * 3-1 , 31, 23, 59, 59);
        }

        //获取当前时间对应的季度
        Date.prototype.getQuarter=function() {
            return Math.ceil((this.getMonth() + 1) / 3);
        }

        //获取当前时间对应的年的开始
        Date.prototype.starOfYear=function() {
            return new Date(this.getFullYear(), 01, 01, 00, 00, 00);
        } 

        //获取当前时间对应年的结束
        Date.prototype.endOfYear=function() {
            return new Date(this.getFullYear(), 12, 31, 23, 59, 59);
        }

        //把时间格式化为字符串
        Date.prototype.toDateString = function(format) {
            if (typeof (format) == "undefined") {
                return this.toString();
            }
            //可能我的第一个想法,就是
            if (/y{4}/.test(format)) {
                format = format.replace(/yyyy/g, this.getFullYear());
            }
            if (/y{2}/.test(format)) {
                format = format.replace(/y{2}/g,this.getFullYear().toString().substr(2));
            }
            if (/M{2}/.test(format)) {
                format = format.replace(/MM/,this.getMonth().toString().padingStar(2,0));
            }
            if (/dd/.test(format)) {
                format = format.replace(/dd/,this.getDate().toString().padingStar(2,'0'));
            }
            if (/HH/.test(format)) {
                format = format.replace(/HH/g, this.getHours().toString().padingStar(2, '0'));
            }
            if (/hh/.test(format)) {
                format = format.replace(/hh/g, (hour < 12 ? hour : hour - 12).toString().padingStar(2, '0'));
            }
            if (/mm/.test(format)) {
                format = format.replace(/mm/g, this.getMinutes().toString().padStart(2, '0'));
            }
            if (/ss/.test(format)) {
                format = format.replace(/ss/g, this.getSeconds().toString().padStart(2, '0'));
            }
            return format;
        }

        //获取两个时间相隔的天数
        Date.prototype.betweenDays=function(date) {
            var daySpan = (Date.parse(this) - Date.parse(date)) / 86400000;
            return daySpan;
        }

github地址:https://github.com/gdoujkzz/JsDate.git

JS对时间的操作的更多相关文章

  1. js对时间的操作相关

    摘自网络,我主要用了日期增加若干天之后获得的日期,就是现在是5月2号,我增加30天,应该返回6月几号来着,就是这个意思 用到了Date.prototype.DateAdd 方法,prototype的意 ...

  2. js中时间的操作

    var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1 ...

  3. 关于JS的时间控制实现动态效果及实例操作

    关于JS的时间控制 <script>        BOM   //Bowers Object Model   浏览器对象模型    setTimeout()//    延迟执行一次   ...

  4. js格式化时间和时间操作

    js格式化时间 function formatDateTime(inputTime) { var date = new Date(inputTime); var y = date.getFullYea ...

  5. jsp+js完成用户一定时间未操作就跳到登录页面

    <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" ...

  6. js中常用的操作

    1.js中常用的数组操作 2.js中常用的字符串操作 3.js中常用的时间日期操作 4.定时器

  7. js的时间操作方法

    1.js获取系统时间格式为YYYY-MM-DD HH:MM:SS 1 function curDateTime(){ 2 var d = new Date(); 3 var year = d.getY ...

  8. Web页面长时间无操作后再获取焦点时转到登录界面

    今天开始讲新浪博客搬到博客园.        在工作中遇到的小问题,感觉有点意思,就记录下来吧!        该问题分为两种情况,一.Web页面长时间无操作后,在对其进行操作,比如点击“首页”.“设 ...

  9. Python3 与 C# 面向对象之~继承与多态 Python3 与 C# 面向对象之~封装 Python3 与 NetCore 基础语法对比(Function专栏) [C#]C#时间日期操作 [C#]C#中字符串的操作 [ASP.NET]NTKO插件使用常见问题 我对C#的认知。

    Python3 与 C# 面向对象之-继承与多态   文章汇总:https://www.cnblogs.com/dotnetcrazy/p/9160514.html 目录: 2.继承 ¶ 2.1.单继 ...

随机推荐

  1. MYSQL瓶颈

    一般来说, 在使用的时候 性能从某个数值开始.突然大大下降,说明就到了瓶颈期. mysql 瓶颈有2种,一种是 cpu瓶颈  一种是 io瓶颈.cpu瓶颈多是由io引起. 而io可以通过  show ...

  2. PhpStorm2017版激活方法、汉化方法以及界面配置

    PhpStorm激活和汉化文件下载网址:http://pan.baidu.com/s/1nuHF1St(提取密码:62cg) PHPMailer的介绍 PhpStorm是一个轻量级且便捷的PHP ID ...

  3. 组件嵌套时报:Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.

    在组件嵌套的过程中,报了一个错误: 这里报错的原因是:vue的组件(模板)只能有一个根节点,即.vue文件中的<template>标签下只能有一个子元素. 因此,建议大家在写.vue组件的 ...

  4. Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置

    背景: 前天开源了框架:开源:Sagit.Framework For IOS 开发框架 所以注定要追补一套开发教程了,所以尽量抽空了!!! 步骤 1:下载框架源码 GitHub:https://git ...

  5. ElasticSearch 学习记录之ES短语匹配基本用法

    短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_sea ...

  6. netty使用从0到1

    本周强总在组内做了netty分享,内容相当不错,趁着这次分享记录的,以及以前研究,进行一下记录. java io形式存在三种,一种是BIO传统IO是阻塞IO,面向字符.字节服务都属于这一种.NIO官方 ...

  7. 【Java入门提高篇】Day9 Java内部类——静态内部类

    今天来说说Java中的最后一种内部类--静态内部类 所谓的静态内部类,自然就是用static修饰的内部类,那用static修饰过后的内部类,跟一般的内部类相比有什么特别的地方呢? 首先,它是静态的,这 ...

  8. TensorBoard 使用和问题解决

    TensorBoard 使用和问题解决 一.启动TensorBoard 1) python tensorflow/tensorboard/tensorboard.py --logdir=path/to ...

  9. KafkaManager中Group下不显示对应Topic的解决方案

    一.软件版本 Kafka:0.8.2.1 KafkaManager:1.2.9.10 二.问题现象 点击Consumer下某个组,显示如下图所示的异常,查看KafkaManager的Applicati ...

  10. Map Task内部实现分析

    上篇我刚刚学习完.Spilt的过程,还算比較简单的了,接下来学习的就是Map操作的过程了,Map和Reduce一样.是整个MapReduce的重要内容,所以.这一篇,我会好好的讲讲里面的内部实现过程. ...