Tìm kiếm trang web

javascript - Tính sự khác nhau giữa các ngày và bắt đầu đếm thời gian từ kết quả đó


Tôi có một ngày theo định dạng sau: ngày: "2020-02-03T10: 00: 00";

Có cách nào để tính sự khác biệt giữa thời gian hiện tại và 2020-02-03T10:00:00 không?

Sau đó tôi dự định bắt đầu một bộ hẹn giờ đếm từ kết quả. Nếu kết quả là 30, tôi muốn bộ hẹn giờ bắt đầu từ 00:30:00, nếu là 60, bắt đầu 01:00:00.

Có ai giúp tôi được không?

CHÓNG

mã

data = [
    {
      date: "2020-02-03T10:00:00",
    },
  ];

  start(){
     this.interval = setInterval(() => {
     this.display = Date.now() - parseInt(this.data[0].date);
     console.log(this.display)

          }, 1000);
  }

Câu trả lời #1

Bạn cần chuyển đổi chuỗi của mình date: "2020-02-03T10:00:00" thành một Đối tượng Ngày để tính toán sự khác biệt.

Bạn có thể sử dụng new Date(dateString). Một ví dụ có thể là:

data = [
{
  date: "2020-02-03T10:00:00",
},
];

start(){
 this.interval = setInterval(() => {
 var date2 = new Date(this.data[0].date)
 this.display = Date.now() - date2;
 console.log(this.display)

      }, 1000);
}

Hãy lưu ý rằng kết quả là sự khác biệt tính bằng mili giây.

Câu trả lời #2

Tôi tin rằng đây là điều bạn muốn có trong hàm của mình. Đã được thử nghiệm và hoạt động: :)

    let difference = (+Date.now()) - (+new Date(this.data[0].date)) / 1000;
    this.interval = setInterval(() => {
      difference--; // difference++ for increasing values if wanted to count in different way
      const s = Math.floor(difference / 1) % 60;
      const m = Math.floor(difference / 60) % 60;
      const h = Math.floor(difference / (60 * 60)) % 24;
      this.display = `${h}:${m}:${s}`;
    }, 1000);

đầu tiên chuyển đổi cả hai ngày sang dấu thời gian. Trừ đi và lấy hiệu, sau đó chia cho 1000 để lấy số giây. Trong mỗi khoảng, giảm giây đi 1. Sau đó, lấy giờ (const h), phút (const m) và giây (const s) bằng cách sử dụng công thức trên. In ra trong thuộc tính display (this.display).