11

I am using date-format package in node back end and I can get today date using

var today = dateFormat(new Date());

In the same or some other way I want yesterday date. Still I did't get any proper method. For the time being I am calculating yesterday date manually with lot of code. Is there any other method other then writing manually ?

idmean
  • 14,540
  • 9
  • 54
  • 83
Shanthi
  • 686
  • 3
  • 11
  • 22
  • 1
    possible duplicate of [Subtract days from a date in JavaScript](http://stackoverflow.com/questions/1296358/subtract-days-from-a-date-in-javascript) – Patrick Aug 10 '15 at 06:07
  • If we all could try to search first and post questions only if we don't find, that'd be great. And if we mark questions as duplicate instead of posting answers just to gain reps, that'd be great. – Salman Aug 10 '15 at 06:27

8 Answers8

28

Try this:

var d = new Date(); // Today!
d.setDate(d.getDate() - 1); // Yesterday!
Osama Mohamed
  • 647
  • 1
  • 6
  • 10
6

I would take a look at moment.js if you are interested in doing calculations with dates, there are many issues you can run into trying to do it manually or even with the built in Date objects in JavaScript/node.js such as leap years and daylight savings time issues.

http://momentjs.com/

For example:

var moment = require('moment');
var yesterday = moment().subtract(1, 'days');
console.log(yesterday.format());
Jarrod
  • 163
  • 6
3

var date=new Date();
var date=new Date(date.setDate(date.getDate()-1));
console.log(date);

This will give you same Date format, but not tested for edge case scenarios.

luek baja
  • 1,475
  • 8
  • 20
0

you can also change Hour,Minute,seconds and milliseconds attributes of time object like this.

var date = new Date();
    date.setDate(date.getDate()-1);
    date.setHours(hour);
    date.setMinutes(minute);
    date.setSeconds(seconds);
    date.setMilliseconds(milliseconds);
Abhilash Km
  • 116
  • 1
  • 5
  • Please explain what your code does and why it will solve the problem. An answer that just contains code (even if it's working) usually wont help the OP to understand their problem. It's also recommended that you don't post an answer if it's just a guess. A good answer will have a plausible reason for why it could solve the OP's issue. – SuperBiasedMan Aug 10 '15 at 08:15
0

To get the string in a format familiar to people

// Date String returned in format yyyy-mm-dd
function getYesterdayString(){
    var date = new Date();
    date.setDate(date.getDate() - 1);
    var day = ("0" + date.getDate()).slice(-2);
    var month = ("0" + (date.getMonth() + 1)).slice(-2); // fix 0 index
    return (date.getYear() + 1900) + '-' + month + '-' + day;
}
0

Try Library called node-datetime

var datetime = require('node-datetime');
var dt = datetime.create();
// 7 day in the past
dt.offsetInDays(-1);
var formatted = dt.format('Y-m-d H:M:S');
console.log(formatted)
Shubham Dixit
  • 9,242
  • 4
  • 27
  • 46
-1

Extract yesterday's date from today

//optimized way 
        var yesterday = new Date();
        yesterday.setDate(yesterday.getDate()-1);
        console.log(yesterday) // log yesterday's date 


//in-detail way 
        var today = new Date();
        var yesterday = new Date();
        yesterday.setDate(today.getDate()-1);
        console.log(yesterday) // log yesterday's date
venkat7668
  • 2,657
  • 1
  • 22
  • 26
-3

Date class will give the current system date and current_ date - 1 will give the yesterday date.

Eg:

var d = new Date(); // Today!
d.setDate(d.getDate() - 1); // Yesterday!
Codemaker2015
  • 12,190
  • 6
  • 97
  • 81