用于显示给定日期前一天的Javascript

用于显示给定日期前一天的Javascript,javascript,date,Javascript,Date,我有起始日期、截止日期和总天数…如果我有起始日期和总天数,那么我必须自动计算截止日期 我使用了以下方法来获取截止日期 var FromDate=$(“#FromDate”).val(); var TotalDays=$(“#txtDays”).val(); FromDate.setDate(parseInt(FromDate.getDate())+parseInt(NoOfDays)); var dd=FromDate.getDate()-1 这在每个月的第1天不起作用…因为它返回0 如何处理这

我有起始日期、截止日期和总天数…如果我有起始日期和总天数,那么我必须自动计算截止日期 我使用了以下方法来获取截止日期

var FromDate=$(“#FromDate”).val();
var TotalDays=$(“#txtDays”).val();
FromDate.setDate(parseInt(FromDate.getDate())+parseInt(NoOfDays));
var dd=FromDate.getDate()-1

这在每个月的第1天不起作用…因为它返回0 如何处理这种情况或以另一种方式帮助我解决……Thanx提前试一试

var d = new Date('08-20-2018');
d.setDate(d.getDate() - 1);
alert(d.getDate());

Date对象足够智能,可以知道如果您将任何“组件”(月、日、小时、分钟、秒、毫秒)设置在“正常”范围之外,该怎么办-如果您只需要知道上一个日期,它可以为您计算,您始终可以从历元时间中减去24小时,然后将其转换回日期对象,并获得如下日期:

新日期(新日期('08-01-2018').getTime()-24*3600000.getDate()

  • 新日期('08-01-2018')。getTime()
    将为您提供上一个日期的纪元时间

  • 24*3600000是从历元中减去24毫秒

  • 减去该值后,您将获得前一天的历元,并使用
    new Date()
    构造函数再次获得日期对象

  • 在这个新的日期对象上,您可以调用
    getDate()
    方法来获得31的正确结果


  • 我已经以
    MM-DD-YYYY
    格式给出了日期到日期的构造函数,您到底想实现什么,那么我们可能会更容易帮助您更好地解决与您的问题无关的问题,但重新分配包含内置变量的变量是一个非常糟糕的主意。运行
    Date=…
    后,您将无法访问
    Date
    构造函数。我认为他正在试图获得2018年8月19日,在这种情况下
    var Date=new Date
    想想这是怎么回事!您正在用日期实例覆盖
    Date
    对象-将导致问题。。。查看d.setDate。。。提示,将日期设置为0并不重要,日期对象是SmartSubtraction 24小时不是一个好主意,因为并非所有白天都是24小时长的,在夏时制被观测到的地方。是的,我的糟糕完全错过了这种情况。