Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在node.js后端获取昨天的日期?_Javascript_Node.js_Date_Date Format - Fatal编程技术网

Javascript 如何在node.js后端获取昨天的日期?

Javascript 如何在node.js后端获取昨天的日期?,javascript,node.js,date,date-format,Javascript,Node.js,Date,Date Format,我在节点后端使用日期格式包,我可以使用 var today = dateFormat(new Date()); 以同样或其他方式,我想要昨天的约会。但我还是没有找到合适的方法。目前我正在用很多代码手动计算昨天的日期。除了手动写入之外,还有其他方法吗?试试以下方法: var d = new Date(); // Today! d.setDate(d.getDate() - 1); // Yesterday! 如果您对使用日期进行计算感兴趣,我会看一下moment.js。如果您尝试手动执行,甚至

我在节点后端使用日期格式包,我可以使用

var today = dateFormat(new Date());
以同样或其他方式,我想要昨天的约会。但我还是没有找到合适的方法。目前我正在用很多代码手动计算昨天的日期。除了手动写入之外,还有其他方法吗?

试试以下方法:

var d = new Date(); // Today!
d.setDate(d.getDate() - 1); // Yesterday!

如果您对使用日期进行计算感兴趣,我会看一下moment.js。如果您尝试手动执行,甚至使用JavaScript/node.js中的内置日期对象,例如闰年和夏令时问题,您可能会遇到许多问题

例如:

var moment = require('moment');
var yesterday = moment().subtract(1, 'days');
console.log(yesterday.format());

从今天摘录昨天的日期

//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

您还可以像这样更改时间对象的小时、分钟、秒和毫秒属性

var date = new Date();
    date.setDate(date.getDate()-1);
    date.setHours(hour);
    date.setMinutes(minute);
    date.setSeconds(seconds);
    date.setMilliseconds(milliseconds);

以人们熟悉的格式获取字符串

// 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;
}

Date类将给出当前系统日期,current_uDate-1将给出昨天的日期

例如:


请尝试名为节点日期时间的库

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)
var-date=新日期();
var date=新日期(date.setDate(date.getDate()-1));

控制台日志(日期)如果我们都可以尝试先搜索,然后只在没有找到的情况下才发布问题,那么这将是非常棒的。如果我们将问题标记为重复问题,而不是仅仅为了获得重复而发布答案,那就太好了。请解释您的代码的作用以及它解决问题的原因。仅仅包含代码的答案(即使它有效)通常不会帮助OP理解他们的问题。如果只是猜测的话,也建议你不要发布答案。一个好的答案将有一个合理的理由来解释为什么它可以解决OP的问题。如果当前日期是2015年1月1日怎么办?按照这种方法,昨天是否仍然等于2014年12月31日?@ChickenWing24是的,是的。我试过这个。3月1日的
-1
将其设置为2月31日。这肯定是错误的。我使用Node.js v12.21.0进行了尝试,并看到了正确的结果:“欢迎使用Node.js v12.21.0。键入“.help”以获取更多信息。>让d=new Date('2020-03-01')undefined>new Date(d.setDate(d.getDate()-1))2020-02-28T00:00:00.000Z``虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效-
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)