Pertanyaan Konversikan stempel waktu Unix ke waktu dalam JavaScript


Saya menyimpan waktu dalam database MySQL sebagai stempel waktu Unix dan yang dikirim ke beberapa kode JavaScript. Bagaimana saya akan mendapatkan waktu untuk itu?

Misalnya, dalam format HH / MM / SS.


826
2018-05-11 08:23


asal


Jawaban:


// Create a new JavaScript Date object based on the timestamp
// multiplied by 1000 so that the argument is in milliseconds, not seconds.
var date = new Date(unix_timestamp*1000);
// Hours part from the timestamp
var hours = date.getHours();
// Minutes part from the timestamp
var minutes = "0" + date.getMinutes();
// Seconds part from the timestamp
var seconds = "0" + date.getSeconds();

// Will display time in 10:30:23 format
var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

Untuk informasi lebih lanjut mengenai objek Tanggal, silakan merujuk ke MDN atau Spesifikasi ECMAScript 5.


1296
2018-05-11 08:28



function timeConverter(UNIX_timestamp){
  var a = new Date(UNIX_timestamp * 1000);
  var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
  var year = a.getFullYear();
  var month = months[a.getMonth()];
  var date = a.getDate();
  var hour = a.getHours();
  var min = a.getMinutes();
  var sec = a.getSeconds();
  var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
  return time;
}

230
2018-05-21 00:44



JavaScript berfungsi dalam milidetik, jadi pertama-tama Anda harus mengonversi stempel waktu UNIX dari detik ke milidetik.

var date = new Date(UNIX_Timestamp * 1000);
// Manipulate JavaScript Date object here...

136
2018-05-11 08:31



Saya berpihak pada Jacob Wright Date.format() perpustakaan, yang mengimplementasikan format tanggal JavaScript dalam gaya PHP date() fungsi.

new Date(unix_timestamp * 1000).format('h:i:s')

69
2017-10-11 21:02



Berikut adalah solusi satu baris terpendek untuk memformat detik sebagai hh:mm:ss:

/**
 * Convert seconds to time string (hh:mm:ss).
 *
 * @param Number s
 *
 * @return String
 */
function time(s) {
    return new Date(s * 1e3).toISOString().slice(-13, -5);
}

console.log( time(12345) );  // "03:25:45"

metode Date.prototype.toISOString() mengembalikan waktu dalam   disederhanakan diperpanjang ISO 8601 format, yang mana selalu Panjang 24 atau 27 karakter (mis. YYYY-MM-DDTHH:mm:ss.sssZ atau    ±YYYYYY-MM-DDTHH:mm:ss.sssZ masing-masing). Zona waktu selalu   nol UTC offset.

N.B .: Solusi ini tidak memerlukan pustaka pihak ketiga dan didukung di semua browser modern dan mesin JavaScript.


37
2018-03-09 11:37



Saya akan berpikir tentang menggunakan perpustakaan seperti momentjs.com, yang membuat ini sangat sederhana:

Berdasarkan stempel waktu Unix:

var timestamp = moment.unix(1293683278);
console.log( timestamp.format("HH/mm/ss") );

Berdasarkan string tanggal MySQL:

var now = moment("2010-10-10 12:03:15");
console.log( now.format("HH/mm/ss") );

23
2017-11-11 10:30



UNIX timestamp adalah jumlah detik sejak 00:00:00 UTC pada tanggal 1 Januari 1970 (menurut Wikipedia).

Argumen objek Date dalam Javascript adalah jumlah milidetik sejak 00:00:00 UTC pada tanggal 1 Januari 1970 (menurut Dokumentasi Javascript W3Schools).

Lihat kode di bawah ini misalnya:

    function tm(unix_tm) {
        var dt = new Date(unix_tm*1000);
        document.writeln(dt.getHours() + '/' + dt.getMinutes() + '/' + dt.getSeconds() + ' -- ' + dt + '<br>');

    }

tm(60);
tm(86400);

memberi:

1/1/0 -- Thu Jan 01 1970 01:01:00 GMT+0100 (Central European Standard Time)
1/0/0 -- Fri Jan 02 1970 01:00:00 GMT+0100 (Central European Standard Time)

19
2018-05-11 08:38



Menggunakan Moment.js, Anda dapat memperoleh waktu dan tanggal seperti ini:

var dateTimeString = moment(1439198499).format("DD-MM-YYYY HH:mm:ss");

Dan Anda bisa hanya menggunakan ini:

var timeString = moment(1439198499).format("HH:mm:ss");

16
2017-08-10 11:48