Finding date by subtracting X number of days from a particular date in Javascript

后端 未结 9 1926
滥情空心
滥情空心 2020-11-27 05:21

I want to find date by subtracting X number of days from a particular date in JavaScript. My JavaScript function accepts 2 parameters. One is the date value and the other i

相关标签:
9条回答
  • 2020-11-27 05:53

    Never go for this solution yourDate.setDate(yourDate.getDate() - daysToSubtract);

    it wont work in case your date is 1st of any month and you want to delete some days say 1.

    Instead go for below solution which will work always

    var newDate = new Date( yourDate.getTime() - (days * 24 * 60 * 60 * 1000) );

    0 讨论(0)
  • 2020-11-27 06:01

    This is what I would do. Note you can simplify the expression, I've just written it out to make it clear you are multiplying the number of days by the number of milliseconds in a day.

     var newDate = new Date( yourDate.getTime() - (days * 24 * 60 * 60 * 1000) );
    
    0 讨论(0)
  • 2020-11-27 06:01

    I have created a function for date manipulation. you can add or subtract any number of days, hours, minutes.

    function dateManipulation(date, days, hrs, mins, operator) {
        date = new Date(date);
        if (operator == "-") {
           var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
           var newDate = new Date(date.getTime() - durationInMs);
        } else {
           var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
           var newDate = new Date(date.getTime() + durationInMs);
        }
       return newDate;
    }
    

    Now, call this function by passing parameters. For example, here is a function call for getting date before 3 days from today.

    var today = new Date();
    var newDate = dateManipulation(today, 3, 0, 0, "-");
    
    0 讨论(0)
  • 2020-11-27 06:02

    this is in reference to above answer check this fiddle

    https://jsfiddle.net/uniyalguru/azh65aa0/

    function Cureent_Date() {
    var today_GMT = new Date();
    var dd = today_GMT.getDate();
    var mm = today_GMT.getMonth() + 1; //January is 0!
    var yyyy = today_GMT.getFullYear();
    if (dd < 10) {
        dd = '0' + dd
    }
    if (mm < 10) {
        mm = '0' + mm
    }
    current_date = mm + '/' + dd + '/' + yyyy;
    
    0 讨论(0)
  • 2020-11-27 06:07
    function date_by_subtracting_days(date, days) {
        return new Date(
            date.getFullYear(), 
            date.getMonth(), 
            date.getDate() - days,
            date.getHours(),
            date.getMinutes(),
            date.getSeconds(),
            date.getMilliseconds()
        );
    }
    
    0 讨论(0)
  • 2020-11-27 06:09

    Here's an example, however this does no kind of checking (for example if you use it on 2009/7/1 it'll use a negative day or throw an error.

    function subDate(o, days) {
    // keep in mind, months in javascript are 0-11
    return new Date(o.getFullYear(), o.getMonth(), o.getDate() - days);;
    }
    
    0 讨论(0)
提交回复
热议问题