使用moment.js什么都没有

时间:2017-10-01 16:40:40

标签: javascript momentjs

我想添加两次,例如import javax.swing.*; import java.awt.Dimension; import java.awt.Rectangle; class Main extends JFrame { JDesktopPane container = new JDesktopPane(); // New frame with 2 JInternalFrames inside a JDesktopPane inside a JScrollPane Main(){ super("JDesktopPane SS"); setSize(1280, 720); setLayout(new ScrollPaneLayout()); container.setBounds(new Rectangle(1920, 1080)); JScrollPane scrollContainer = new JScrollPane(container, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); setContentPane(scrollContainer); container.add(createFrame()); container.add(createFrame()); } public static void main(String[] args){ SwingUtilities.invokeLater(() -> { // Create new frame with 2 JInternalFrames inside a JDesktopPane inside a JScrollPane JFrame main_frame = new Main(); main_frame.setVisible(true); }); } // Create new InternalFrame with a TextPane private JInternalFrame createFrame(){ JInternalFrame new_frame = new JInternalFrame("Document"); new_frame.setResizable(true); JTextPane txt = new JTextPane(); txt.setPreferredSize(new Dimension(100, 80)); new_frame.add(txt); new_frame.pack(); new_frame.setVisible(true); return new_frame; } } time1 = '00:05'。我想在总和之后得到如下结果:time2 = '10:00'。我用了那个时刻,这就是我用过的东西:

result='10:05'

但我一无所获,我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您无法通过这种方式添加时间,因为您要求它添加两次,而不是时间加上持续时间。如果要添加十分钟,请使用持续时间为add()的函数。

moment(this.time2, "hh:mm A").add(10, 'minutes')

更多信息:https://momentjs.com/docs/#/manipulating/add/

在你的问题中,00:05 PM的含义并不是很清楚。这看起来不是一个有效的时间。时刻会把它解释为下午12:05,但看起来你想把它解释为5分钟。 (这是你得到10:05作为答案的唯一方法)。如果您不包含字符串的PM部分,则可以暂时执行此操作。

moment.duration('00:05')

持续时间为五分钟。您可以将此添加到您的时间:

moment('10:00 PM', '"hh:mm A"').add(moment.duration('00:05'))
// 22:05:00

添加两个句点有效,但目前并不明显,如何格式化它就像你想要的那样。在将format()添加到持续时间之前,必须这样做:

 var d = moment.duration('03:10:10').add(moment.duration('01:20:30'))
 moment.utc(d.as('milliseconds')).format("HH:mm:ss")
// '04:30:40'

答案 1 :(得分:0)

<块引用>

参见使用 moment.js 的 Add & Diff 示例..干杯?

   // addTimes(["01:00", "00:30", "00:50"]) ---- 02:20

   addTimes(times) {
    let duration = 0;
    times.forEach(time => {
      duration = duration + moment.duration(time).as('milliseconds')
    });
    return  moment.utc(duration).format("HH:mm")
   }

   // subtractTimes(["05:00", "00:30", "00:20"]) --- 04:10


   subtractTimes(times) {
    let totalDiff = 0
    for (let i = 0; i < times.length; i++) {
      let duration = moment.duration(times[i]).as('milliseconds')
      if (i == 0) {
        totalDiff = duration
      }
      if (i > 0) {
        totalDiff = totalDiff - duration
      }
    }
    return moment.utc(totalDiff).format("HH:mm")
  }