【问题标题】:JQuery / Javascript Date add 2 Days (like PHP strtotime)JQuery / Javascript 日期加 2 天(如 PHP strtotime)
【发布时间】:2011-07-09 12:51:27
【问题描述】:

寻找一个简单的解决方案,在 JQuery/Javascript 中为选定日期添加 2 天。

日期以 Y-m-d 为今天的格式返回,例如 2011-07-09。我想要做的是增加 2 天。这在 php 中使用 strtotime 函数很容易,但在 javascript 中是如何完成的。

有什么想法吗?

太棒了

【问题讨论】:

标签: javascript jquery date strtotime


【解决方案1】:

使用 JavaScript Date 对象的 setDate() 方法。

var myDate = new Date('2011-07-09');
myDate.setDate(myDate.getDate() + 2);

【讨论】:

  • 我用 alert(myDate) 跟着它,它说无效的日期作为警报。我搞砸了什么
  • @Robin 当我运行上面的代码时,我得到Mon Jul 11 2011 00:00:00 GMT-0400 (Eastern Daylight Time) 作为警报的输出。你确定你喂它的日期是有效的吗?你用的是什么浏览器?
  • 问题是它只能在 Firefox 中以标准格式工作。找到替代方案,但 Safari 认为这是一个无效日期
  • @Robin 您可能要考虑尝试的一个选项(如果它在您的应用程序中不是矫枉过正的话)是使用库DateJS。它有一些有用的日期处理实用程序,可以使这些类型的操作更加顺畅。
  • setDate() 在现有日期中设置月份中的日期。如果调用 .setDate(33) 是否定义明确?
【解决方案2】:

如果你的日期是一个 JavaScript Date 对象,那么你可以这样做:

var myDate = new Date();
var newDate = new Date(myDate.getTime() + 2 * 24 * 60 * 60 * 1000);

将日期添加到您的日期后,您可以按照当前的方式对其进行格式化。

显然,如果你压缩所有的乘法,你可以缩短它,但这样会更明显地实际发生什么。

【讨论】:

    【解决方案3】:

    同样的问题,我为基本功能创建了以下函数。它接受并返回类似于 PHP 的时间,自 1970-01-01 以来的整数毫秒数。

    var d = new Date(2011, 0, 1, 0, 0, 0, 0);
    var result = strtotime('-66 second', d.getTime());
    
    function strtotime(time, now) {
    
      var d = new Date();
      d.setTime(now);
    
      var ParsedTime = new RegExp('([+-][0-9]+) (\\w+)', 'i').exec(time);
      if(!ParsedTime) return 0;
    
      switch(ParsedTime[2]) {
        case 'second':
          d.setSeconds(d.getSeconds() + parseInt(ParsedTime[1], 10));
          break;
        case 'minute':
          d.setMinutes(d.getMinutes() + parseInt(ParsedTime[1], 10));
          break;
        case 'hour':
          d.setHours(d.getHours() + parseInt(ParsedTime[1], 10));
          break;
        case 'day':
          d.setDate(d.getDate() + parseInt(ParsedTime[1], 10));
          break;
        case 'month':
          d.setMonth(d.getMonth() + parseInt(ParsedTime[1], 10));
          break;
        case 'year':
          d.setFullYear(d.getFullYear() + parseInt(ParsedTime[1], 10));
          break;
      }
    
      return d.getTime();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多