日期处理

开发工具与关键技术:VS   后端

作者:陈芝番                                                         

撰写时间:2019.7.24

 

在做项目的时候遇到一个问题:如何获取当天时间+具体天数=获取指定日期。那就是对具体时间进行加减等。

对指定日期进行加减做法如下:

Html部分:

<h2>对指定日期进行加减</h2>

<p id='setXDate1'>获取当前日期,增加7天:<p>

<p id='setXDate2'>获取当前日期,增加7年:<p>

Js部分:innerHTML可以重绘页面的一部分,用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。

this.getElement("setXDate1").innerHTML = "获取当前日期,增加7天:" + this.setXDate(d, 0 , 0, 7);

this.getElement("setXDate2").innerHTML = "获取当前日期,增加7年:" + this.setXDate(d, 7);

对指定日期进行加减

_DM.setXDate = function(date, xY, xM, xD, xh, xm, xs){

        xY = xY || 0;

        xM = xM || 0;

        xD = xD || 0;

        xh = xh || 0;

        xm = xm || 0;

        xs = xs || 0;

//如果存在年的差值,则计算

        if(xY){

           date.setFullYear(date.getFullYear() + xY);

        }

        //如果存在月的差值,则计算

        if(xM){

           date.setMonth(date.getMonth() + xM);}

//如果存在日的差值,则计算

        if(xD){

           date.setDate(date.getDate() + xD);

        }

//如果存在时的差值,则计算

        if(xh){

           date.setHours(date.getHours() + xh);

        }

//如果存在分的差值,则计算

        if(xm){

           date.setMinutes(date.getMinutes() + xm);

        }

//如果存在秒的差值,则计算

        if(xs){

           date.setSeconds(date.getSeconds() + xs);

        }

        return date.format("YYYY-MM-DD h:m:s")

    }

对指定日期进行加减效果如下:

日期处理

或者对时间延伸发展:获取指定日期所在周是第几周,比较两个日期的差等。

获取指定日期所在周是第几周:

Html 部分:

<h2>获取指定日期所在周是第几周</h2>

<p id='getHowManyWeeks'></p>

Js部分:

this.getElement("getHowManyWeeks").innerHTML="第" + this.getHowManyWeeks("2014", "1", "6") +"周";

//获取指定日期所在周是第几周

_DM.getHowManyWeeks = function(Y, M, D){

//总天数

        var totalDays = 0,

//默认开始为第1个月

            i = 1;

//计算总天数

for(; i < M ; i++){

            totalDays += this.getMonthDays(Y, M);

        }

        totalDays += D;

//除以7,向上取数,计算第几周

        return Math.ceil(totalDays/7);}

效果如下:

日期处理

比较两个日期的差:

Html部分:

<h2>比较两个日期的差</h2>

<p id='getDateDifferenceValue'>2014年6月3日与2014年6月4日差值:<p>

Js部分:

//比较两个日期的差

this.getElement("getDateDifferenceValue").innerHTML = "2014年6月3日与2014年6月4日差值" + this.getDateDifferenceValue(

                        {

                            "Y":"2014",

                            "M":"6",

                            "D":"3"

                        },

                        {

                            "Y":"2014",

                            "M":"6",

                            "D":"4"

                        }) + "秒";

//比较两个日期的差

_DM.getDateDifferenceValue = function(date1,date2){

        var d1 = new Date(date1.Y || 0, (date1.M-1) || 0, date1.D || 1, date1.h || 0, date1.m || 0, date1.s || 0).getTime(),

        d2 = new Date(date2.Y || 0, (date2.M-1) || 0, date2.D || 1, date2.h || 0, date2.m || 0, date2.s || 0).getTime();

        return (d1 - d2)/1000;}

比较两个日期的差,效果如下:

日期处理

结语:处理日期加减,比较两个日期的差,获取指定日期所在的周是第几周。

上一篇:2021.11.17 NOIP模拟


下一篇:map