Cara menggunakan 86400000 pada JavaScript

Saya ingin mengonversi durasi waktu, yaitu, jumlah detik ke string waktu yang dipisahkan oleh titik dua [jj: mm: dd]

Saya menemukan beberapa jawaban yang berguna di sini tetapi mereka semua berbicara tentang konversi ke format x jam dan x menit.

Jadi, apakah ada cuplikan kecil yang melakukan ini di jQuery atau hanya JavaScript mentah?

Jawaban:

String.prototype.toHHMMSS = function [] {
    var sec_num = parseInt[this, 10]; // don't forget the second param
    var hours   = Math.floor[sec_num / 3600];
    var minutes = Math.floor[[sec_num - [hours * 3600]] / 60];
    var seconds = sec_num - [hours * 3600] - [minutes * 60];

    if [hours    "1:06:40"

function seconds2time [seconds] {
    var hours   = Math.floor[seconds / 3600];
    var minutes = Math.floor[[seconds - [hours * 3600]] / 60];
    var seconds = seconds - [hours * 3600] - [minutes * 60];
    var time = "";

    if [hours != 0] {
      time = hours+":";
    }
    if [minutes != 0 || time !== ""] {
      minutes = [minutes  9 ? s : '0' + s
  ].filter[Boolean].join[':'];
}

Hasil yang diharapkan:

const expect = require['expect'];
expect[formatTime[0]].toEqual['0:00'];
expect[formatTime[1]].toEqual['0:01'];
expect[formatTime[599]].toEqual['9:59'];
expect[formatTime[600]].toEqual['10:00'];
expect[formatTime[3600]].toEqual['1:00:00'];
expect[formatTime[360009]].toEqual['100:00:09'];
expect[formatTime[0.2]].toEqual['0:00'];

Saya suka jawaban pertama. Ada beberapa optimasi:

  • sumber data adalah suatu Angka. perhitungan tambahan tidak diperlukan.

  • banyak kelebihan komputasi

Kode hasil:

Number.prototype.toHHMMSS = function [] {
    var seconds = Math.floor[this],
        hours = Math.floor[seconds / 3600];
    seconds -= hours*3600;
    var minutes = Math.floor[seconds / 60];
    seconds -= minutes*60;

    if [hours   0?d+'d ':'']+[h>0?h+':':'']+[m>0?m+':':'']+[t>60?s:s+'s'];
}

mengembalikan "3d 16:32:12" atau "16:32:12" atau "32:12" atau "12s"

Saya menyukai jawaban Powtac, tetapi saya ingin menggunakannya di angular.js, jadi saya membuat filter menggunakan kodenya.

.filter['HHMMSS', ['$filter', function [$filter] {
    return function [input, decimals] {
        var sec_num = parseInt[input, 10],
            decimal = parseFloat[input] - sec_num,
            hours   = Math.floor[sec_num / 3600],
            minutes = Math.floor[[sec_num - [hours * 3600]] / 60],
            seconds = sec_num - [hours * 3600] - [minutes * 60];

        if [hours   

Bài mới nhất

Chủ Đề