programing

오늘 날짜에 일수를 추가하는 방법은 무엇입니까?

projobs 2023. 1. 14. 10:20
반응형

오늘 날짜에 일수를 추가하는 방법은 무엇입니까?

jQuery를 사용하여 오늘 날짜에 1, 2, 5 또는 10일을 추가할 수 있어야 합니다.

JavaScript를 사용할 수 있습니다.jQuery는 필요 없습니다.

var someDate = new Date();
var numberOfDaysToAdd = 6;
var result = someDate.setDate(someDate.getDate() + numberOfDaysToAdd);
console.log(new Date(result))

이것은 5일간입니다.

var myDate = new Date(new Date().getTime()+(5*24*60*60*1000));

JQuery는 필요 없습니다.JavaScript에서 할 수 있습니다.알았으면 좋겠어요.

javascript Date 개체를 다음과 같이 확장할 수 있습니다.

Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + parseInt(days));
    return this;
};

당신의 자바스크립트 코드로 전화를 걸 수 있습니다.

var currentDate = new Date();
// to add 4 days to current date
currentDate.addDays(4);

왜 단순히 사용하지 않는가?

function addDays(theDate, days) {
    return new Date(theDate.getTime() + days*24*60*60*1000);
}

var newDate = addDays(new Date(), 5);

또는 -5를 사용하여 5일을 제거합니다.

[Update] 계속하기 전에 읽어보십시오.

모멘트.js

설치하다moment.js여기서부터요.

npm:$ npm i --save moment

바우어 : $bower install --save moment

다음 분.

var date = moment()
            .add(2,'d') //replace 2 with number of days you want to add
            .toDate(); //convert it to a Javascript Date Object if you like

링크 레퍼런스 : http://momentjs.com/docs/ #/protulating/add/

Moment.jsDate 객체를 관리하기 위한 놀라운 Javascript 라이브러리입니다.

행운을 빌어요.

Krishna Chytanya의 시제품 솔루션은 매우 좋지만, 작지만 중요한 개선이 필요합니다.days param은 days가 String "1"과 같은 경우 이상한 계산을 피하기 위해 Integer로 해석해야 합니다.(어플리케이션에서 무엇이 잘못되었는지 알아내는 데 몇 시간이 걸렸습니다.)

Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + parseInt(days));
    return this;
};

이 프로토타입 기능을 사용하지 않더라도 다음과 같습니다.setDate()를 사용할 때는 반드시 Integer가 있어야 합니다.

날짜 형식이 지정된 순수 JS 솔루션YYYY-mm-dd포맷

var someDate = new Date('2014-05-14');
someDate.setDate(someDate.getDate() + 15); //number  of days to add, e.x. 15 days
var dateFormated = someDate.toISOString().substr(0,10);
console.log(dateFormated);

날짜의 시간이 필요하지 않은 경우 날짜 개체의 메서드를 사용하여 월, 연도 및 날짜를 추출하고 "n" 일 수를 일 부분에 추가할 수 있습니다.

var n=5; //number of days to add. 
var today=new Date(); //Today's Date
var requiredDate=new Date(today.getFullYear(),today.getMonth(),today.getDate()+n)

참조: Mozilla Javascript GetDate

편집: 참조: Mozilla JavaScript 날짜

여기서 받아들여진 답변은 예측할 수 없는 결과를 낳았습니다.때로는 이상하게 몇 달이고 몇 년이 더해지기도 했습니다.

가장 신뢰할 수 있는 방법은 여기에서 찾을 수 있습니다. Javascript Date 객체에 days를 추가하고 월도 늘립니다.

var dayOffset = 20;
var millisecondOffset = dayOffset * 24 * 60 * 60 * 1000;
december.setTime(december.getTime() + millisecondOffset); 

편집: 몇몇 사람들에게는 효과가 있었지만, 저는 그것이 완전히 옳다고 생각하지 않습니다.더 인기 있는 답변을 사용하거나 http://momentjs.com/과 같은 것을 사용하는 것을 추천합니다.


function addDays(n){
    var t = new Date();
    t.setDate(t.getDate() + n); 
    var month = "0"+(t.getMonth()+1);
    var date = "0"+t.getDate();
    month = month.slice(-2);
    date = date.slice(-2);
     var date = date +"/"+month +"/"+t.getFullYear();
    alert(date);
}

addDays(5);

Date.prototype.addDays = function(days)
{
    var dat = new Date(this.valueOf() + days * 24 * 60 * 60 * 1000 );
    return dat;
}

이 라이브러리 "Datejs 오픈 소스 JavaScript 날짜 라이브러리"를 사용할 수 있습니다.

자바스크립트에서 이게 골칫거리라는 걸 알아냈어나를 도와준 이 링크를 확인해 주세요.날짜 오브젝트를 확장하는 것을 생각해 본 적이 있습니까?

http://pristinecoder.com/Blog/post/javascript-formatting-date-in-javascript

/*
 * Date Format 1.2.3
 * (c) 2007-2009 Steven Levithan <stevenlevithan.com>
 * MIT license
 *
 * Includes enhancements by Scott Trenda <scott.trenda.net>
 * and Kris Kowal <cixar.com/~kris.kowal/>
 *
 * Accepts a date, a mask, or a date and a mask.
 * Returns a formatted version of the given date.
 * The date defaults to the current date/time.
 * The mask defaults to dateFormat.masks.default.
 */

var dateFormat = function () {
    var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
        timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
        timezoneClip = /[^-+\dA-Z]/g,
        pad = function (val, len) {
            val = String(val);
            len = len || 2;
            while (val.length < len) val = "0" + val;
            return val;
        };

    // Regexes and supporting functions are cached through closure
    return function (date, mask, utc) {
        var dF = dateFormat;

        // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
        if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
            mask = date;
            date = undefined;
        }

        // Passing date through Date applies Date.parse, if necessary
        date = date ? new Date(date) : new Date;
        if (isNaN(date)) throw SyntaxError("invalid date");

        mask = String(dF.masks[mask] || mask || dF.masks["default"]);

        // Allow setting the utc argument via the mask
        if (mask.slice(0, 4) == "UTC:") {
            mask = mask.slice(4);
            utc = true;
        }

        var _ = utc ? "getUTC" : "get",
            d = date[_ + "Date"](),
            D = date[_ + "Day"](),
            m = date[_ + "Month"](),
            y = date[_ + "FullYear"](),
            H = date[_ + "Hours"](),
            M = date[_ + "Minutes"](),
            s = date[_ + "Seconds"](),
            L = date[_ + "Milliseconds"](),
            o = utc ? 0 : date.getTimezoneOffset(),
            flags = {
                d:    d,
                dd:   pad(d),
                ddd:  dF.i18n.dayNames[D],
                dddd: dF.i18n.dayNames[D + 7],
                m:    m + 1,
                mm:   pad(m + 1),
                mmm:  dF.i18n.monthNames[m],
                mmmm: dF.i18n.monthNames[m + 12],
                yy:   String(y).slice(2),
                yyyy: y,
                h:    H % 12 || 12,
                hh:   pad(H % 12 || 12),
                H:    H,
                HH:   pad(H),
                M:    M,
                MM:   pad(M),
                s:    s,
                ss:   pad(s),
                l:    pad(L, 3),
                L:    pad(L > 99 ? Math.round(L / 10) : L),
                t:    H < 12 ? "a"  : "p",
                tt:   H < 12 ? "am" : "pm",
                T:    H < 12 ? "A"  : "P",
                TT:   H < 12 ? "AM" : "PM",
                Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
                o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
                S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
            };

        return mask.replace(token, function ($0) {
            return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
        });
    };
}();

// Some common format strings
dateFormat.masks = {
    "default":      "ddd mmm dd yyyy HH:MM:ss",
    shortDate:      "m/d/yy",
    mediumDate:     "mmm d, yyyy",
    longDate:       "mmmm d, yyyy",
    fullDate:       "dddd, mmmm d, yyyy",
    shortTime:      "h:MM TT",
    mediumTime:     "h:MM:ss TT",
    longTime:       "h:MM:ss TT Z",
    isoDate:        "yyyy-mm-dd",
    isoTime:        "HH:MM:ss",
    isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
    isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
    dayNames: [
        "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
        "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
    ],
    monthNames: [
        "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
        "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    ]
};

// For convenience...
Date.prototype.format = function (mask, utc) {
    return dateFormat(this, mask, utc);
};

JQuery는 필요 없습니다.timeSolver.js

예를 들어 오늘 5일을 추가합니다.

var newDay = timeSolver.add(new Date(),5,"day");

시간, 월 등의 단위로 추가할 수도 있습니다.자세한 것에 대하여는, 을 참조해 주세요.

JavaScript를 하면 JavaScript가 할 수 .new Date(nYear, nMonth, nDate);아!를 한 번 .dDate변수를 사용합니다.

var dDate = new Date(2012, 0, 34); // the result is 3 Feb 2012


공유할 SkipDate 함수가 있습니다.

    function DaysOfMonth(nYear, nMonth) {
        switch (nMonth) {
            case 0:     // January
                return 31; break;
            case 1:     // February
                if ((nYear % 4) == 0) {
                    return 29;
                }
                else {
                    return 28;
                };
                break;
            case 2:     // March
                return 31; break;
            case 3:     // April
                return 30; break;
            case 4:     // May
                return 31; break;
            case 5:     // June
                return 30; break;
            case 6:     // July
                return 31; break;
            case 7:     // August
                return 31; break;
            case 8:     // September
                return 30; break;
            case 9:     // October
                return 31; break;
            case 10:     // November
                return 30; break;
            case 11:     // December
                return 31; break;
        }
    };

    function SkipDate(dDate, skipDays) {
        var nYear = dDate.getFullYear();
        var nMonth = dDate.getMonth();
        var nDate = dDate.getDate();
        var remainDays = skipDays;
        var dRunDate = dDate;

        while (remainDays > 0) {
            remainDays_month = DaysOfMonth(nYear, nMonth) - nDate;
            if (remainDays > remainDays_month) {
                remainDays = remainDays - remainDays_month - 1;
                nDate = 1;
                if (nMonth < 11) { nMonth = nMonth + 1; }
                else {
                    nMonth = 0;
                    nYear = nYear + 1;
                };
            }
            else {
                nDate = nDate + remainDays;
                remainDays = 0;
            };
            dRunDate = Date(nYear, nMonth, nDate);
        }
        return new Date(nYear, nMonth, nDate);
    };

여기 나에게 효과가 있었던 해결책이 있다.

function calduedate(ndays){

    var newdt = new Date(); var chrday; var chrmnth;
    newdt.setDate(newdt.getDate() + parseInt(ndays));

    var newdate = newdt.getFullYear();
    if(newdt.getMonth() < 10){
        newdate = newdate+'-'+'0'+newdt.getMonth();
    }else{
        newdate = newdate+'-'+newdt.getMonth();
    }
    if(newdt.getDate() < 10){
        newdate = newdate+'-'+'0'+newdt.getDate();
    }else{
        newdate = newdate+'-'+newdt.getDate();
    }

    alert("newdate="+newdate);

}

언급URL : https://stackoverflow.com/questions/3818193/how-to-add-number-of-days-to-todays-date

반응형