【问题标题】:Date format with time range in javascriptjavascript中带有时间范围的日期格式
【发布时间】:2015-07-13 14:31:30
【问题描述】:

我有一个 04/05/2015, 01:30 (dd/mm/yyyy, HH:mm) 格式的 JavaScript 日期变量。现在如何将该格式更改为04/05/2015, 01:00-01:30 格式。即,我想在第一个时间值始终比第二个时间值小 30 分钟的时间范围内更改时间。所以如果日期是04/05/2015, 13:00,那么格式化的日期就是04/05/2015, 12:30-13:30

编辑:请参阅fiddle here 获取示例。

【问题讨论】:

  • “javascript 日期”是什么意思?它是字符串还是日期?输出应该是什么?字符串?
  • 您是否尝试编写一些我们可以查看的内容?
  • 查看添加的样本小提琴@Axel
  • 你看过这个库吗:momentjs.com 它带有大量的格式化和转换方法。

标签: javascript jquery date datetime format


【解决方案1】:

请检查以下解决方案:

http://jsfiddle.net/ub942s6y/14/

您需要将data.addColumn('datetime', 'Date'); 更改为“字符串”,因为我们正在更改时间

它会正常工作的。 :)

【讨论】:

    【解决方案2】:

    我担心您所要求的功能没有开箱即用的功能,您必须为此编写自己的功能。

    这是一个 js 日期对象规范:Date Object

    你的新函数返回类型不能是日期,因为这种格式只能用字符串类型来实现。

    【讨论】:

      【解决方案3】:

      您不能拥有该格式的 date 对象。您将手动创建格式。它将是字符串。

      var dateObj = new Date('04/05/2015, 01:30'), // input date 
          interval = 30,                           // interval in minutes
          remainingInterval = 0;
      
      var hours = dateObj.getHours(),
          minutes = dateObj.getMinutes();
      if(minutes > interval) {
          minutes = minutes - interval;
      } else {
          remainingInterval  = interval - minutes;
          minutes = 60;
          hours = hours - 1;
          minutes = minutes - remainingInterval;
      }
      

      结果日期可以是

      console.log(dateObj.getDate()+'/'+dateObj.getMonth()+'/'+dateObj.getFullYear()+', '+dateObj.getHours()+':'+dateObj.getMinutes()+' - '+hours+':'+minutes);
      

      【讨论】:

        猜你喜欢
        • 2015-01-22
        • 1970-01-01
        • 2023-01-10
        • 1970-01-01
        • 1970-01-01
        • 2015-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多