javascript日期加减——年、月、日

原创 2016年08月31日 11:14:47

javascript日期加减——年、月、日

javascript的日期加减,能够进行日期的加减(月份只能加,不能减),下面是代码和截图:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="test.js"></script>
</head>
<body>
    <h1>hello world</h1>
</body>
</html>

/**
 * Created by Administrator on 2016-08-31.
 */
window.onload = function () {
    var nowdate = new Date();
    console.log(dateToString(nowdate));
    console.log(dateToString(dateAddDate(nowdate, 2)));
    console.log(dateToString(dateAddMonth(nowdate,12)));

    var testdate = '2016-8-30';
    var temptestdate = dateAddMonth(testdate, -6);
    console.log(dateToString(temptestdate));
    console.log(dateToString(dateAddYear(temptestdate, 1)));

};

/**
 * 日期转换成 2016-8-31形式
 * @param date
 * @returns {string}
 */
var dateToString = function (date) {
    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
};

/**
 * 日期加上任意天数或减去任意天数
 * @param date
 * @param dayCount
 * @returns {Date}
 */
var dateAddDate = function (date, dayCount) {
    var tempDate = dateToDate(date);
    var count = parseInt(dayCount);
    var oldYear = tempDate.getFullYear();
    var oldMonth = tempDate.getMonth();
    var oldDate = tempDate.getDate();
    var newDate = oldDate + count;
    return new Date(oldYear, oldMonth, newDate);
};

/**
 * 把字符串转换成Date,如果是Date类型,则不转换。2016-8-31
 * @param date
 * @returns {Date}
 */
function dateToDate(date) {
    var sDate = new Date();
    if (typeof date == 'object' && typeof new Date().getMonth == "function") {
        sDate = date;
    } else if (typeof date == "string") {
        var arr = date.split('-');
        if (arr.length == 3) {
            sDate = new Date(arr[0] + '-' + arr[1] + '-' + arr[2]);
        }
    }
    return sDate;
};

/**
 * 日期加上任意月份
 * @param date
 * @param monthCount
 * @returns {Date}
 */
var dateAddMonth = function (date, monthCount) {
    var tempDate = dateToDate(date);
    var count = parseInt(monthCount);
    if(count < 0){
        return new Date();
    }
    var oldYear = tempDate.getFullYear();
    var oldMonth = tempDate.getMonth();
    var oldDate = tempDate.getDate();
    var newMonth = oldMonth + count;
    var newDate = new Date(oldYear, newMonth, oldDate);
    //防止月份数不一致,进行微调
    while (newDate.getMonth() != (newMonth % 12)) {
        oldDate--;
        newDate = new Date(oldYear, newMonth, oldDate);
    }
    return newDate;
};

/**
 * 日期加减年
 * @param date
 * @param yearCount
 * @returns {Date}
 */
var dateAddYear = function (date, yearCount) {
    var tempDate = dateToDate(date);
    var count = parseInt(yearCount);
    var oldYear = tempDate.getFullYear();
    var oldMonth = tempDate.getMonth();
    var oldDate = tempDate.getDate();
    var newYear = oldYear + count;
    var newDate = new Date(newYear, oldMonth, oldDate);
    //防止月份数不一致,进行微调
    while (newDate.getMonth() != oldMonth) {
        oldDate--;
        newDate = new Date(newYear, oldMonth, oldDate);
    }
    return newDate;
};

运行结果:

版权声明:本文为博主原创文章,未经博主允许不得转载。

js date日期简单封装,时间加减

//js格式化时间 "yyyy-MM-dd hh:mm:ss" Date.prototype.Format = function (fmt) { var o = { "M+":...

js当前时间加减一天,和格式化时间格式

下面给大家推荐一种很好用的时间格式转换的js代码: Date.prototype.Format = function (fmt) { //author: meizz var o = { ...

javascript中加减时间

上午在处理一些js中的日期参数的时候遇到了一点问题,不晓得如何加减时间。 最初的想法是自己分别取出year,month,day,hour,minute,second,然后手动加。。。开始想直接来个借...

js计算时间加减及有关时间大小的比较

将字符串形式的日期转换成日期对象, JS获取当前时间戳的方法-JavaScript 获取当前时间戳,时间戳越大,则时间越往后, 计算时间前几天,前几月,前几年或后n天、月、年...

javascript实现日期按月份加减

项目中需要用到,自己写了一个。javascript日期按月加减。 方法一: function dateToDate(date) { var sDate ...
  • dmlcq
  • dmlcq
  • 2017年07月03日 16:42
  • 532

JavaScript_日期加月计算

/** * 日期加月计算 * num:要加的月数 * sdate:要计算的日期,日期对象 */ function addMonth(num,sdate) { //日期不传默认为当前日期 var d =...

js 日期自动加月数

--次方法是网上    function  addmulMonth(dtstr,n){   // n个月后     var s=dtstr.split("-");    var yy=pars...

IOS年、月、日三种日期加减选择器

今天和大家分享一下,我自己写的关于日期分别已年、月、日加减的方法。

javascript的日期加减

  • 2008年01月30日 15:31
  • 14KB
  • 下载

javascript日期加减

function TimeCom( dateValue )     {         var newCom = new Date( dateValue );         this.year...
  • vileboy
  • vileboy
  • 2012年05月05日 11:36
  • 288
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript日期加减——年、月、日
举报原因:
原因补充:

(最多只允许输入30个字)