javascript 日期加上一些天的问题

标签 javascript date

我正在开发一个报告系统。 在我的报告系统中,我将自动加上所选日期至今的天数。 我使用了以下 Javascript 代码片段。

function add_date(curdate, days) {
  
  //curdate format : "yyyy-mm-dd"
  var newdate = new Date(curdate);

  newdate.setDate(newdate.getDate() + days);

  var dd = newdate.getDate();
  var mm = newdate.getMonth() + 1;
  var y = newdate.getFullYear();

  if(dd < 10)
    dd = '0' + dd;
  if(mm < 10)
    mm = '0' + mm;

  var someFormattedDate = y + '-' + mm + '-' + dd;
  return someFormattedDate;
  
}

此功能在几乎所有平台和浏览器上都可以正常工作。 但在特定的平台或浏览器(例如 iPhone Safari 和 Windows 8.1)上,我得到了不同的结果。 如果我加上3天,我就能得到加2天的结果。 我在我的电脑、iPhone 和 browserstack.com 上进行了测试。 我需要您的帮助。 谢谢。

最佳答案

我想说你最好的选择是调查Moment.js

但是你可以尝试这样的事情......

// add 5 days
console.log(add_date('2016-02-18T15:53:02Z', 5));

function add_date(curdate, days) {
    var newdate = new Date(curdate);

    // add number of days
    return new Date(newdate.getTime() + ((24 * 60 * 60 * 1000) * days));
}

关于javascript 日期加上一些天的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35492041/

相关文章:

ruby-on-rails - 说明如何使用 I18n.l @user.created_at,格式 : :default

javascript - 将 JavaScript 到日期对象转换为 MySQL 日期格式 (YYYY-MM-DD)

javascript - 动态访问按钮并创建列表 Javascript

javascript - 使用 MomentJS 将/Date(####)/转换为本地 MM/dd/yyyy 时遇到问题

java - MS SQL 中的 SELECT 语句返回丢失 2-4 天的日期

php - 设置截至今天的过去 30 天的开始和结束日期

php - 如何在php中检查mysql日期是否不为空

javascript - Chrome 和 IE 中的 stopPropagation

javascript - Angular JS Controller 未实例化

javascript - 应用程序以垂直模式打开,而不是水平模式