Bagaimana cara mengembalikan stempel waktu saat ini dengan Moment.js?

157

Orang-orang,

Saya mencoba memahami API MomentJS. Apa cara yang tepat untuk mendapatkan waktu saat ini di mesin?

var CurrentDate = moment();

vs.

var CurrentDate = moment().format();

Mencoba mengurai dokumen mereka, dan tidak jelas apa yang harus digunakan.

http://momentjs.com/docs/#/query/is-a-moment/

Cmag
sumber
1
Waktu sekarang seperti apa? batalkan cap waktu?
koma
Saya akan membayangkan RFC3339 atau apa pun id standar internet untuk kembali ke klien, dll
Cmag
2
Kembali ke klien ... hummm ... Saya kira Anda mendapatkannya di nodejs dan mengirimkannya ke browser yang ingin mengubahnya lagi menjadi instance momentjs?
koma
1
Maaf, apakah Anda menganggap jawaban saya bermanfaat?
koma
1
benar-benar, saya pikir :) mengajukan pertanyaan singkat mengenaivar now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

Jawaban:

239

Di sini Anda menetapkan instance momentjs ke CurrentDate:

var CurrentDate = moment();

Di sini hanya sebuah string, hasil dari pemformatan default instance momentjs:

var CurrentDate = moment().format();

Dan di sini jumlah detik sejak Januari ... yah, cap waktu unix:

var CurrentDate = moment().unix();

Dan di sini string lain sebagai ISO 8601 ( Apa perbedaan antara ISO 8601 dan RFC 3339 Format Tanggal? ):

var CurrentDate = moment().toISOString();

Dan ini bisa dilakukan juga:

var a = moment();
var b = moment(a.toISOString());

console.log(a.isSame(b)); // true
koma
sumber
apakah ini bisa diterima? var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag
1
@Cmag, saya tidak mengerti pertanyaannya, tetapi coba lihat ini: jsfiddle.net/coma/bLe31qq0 , seperti yang bisa Anda lihat di sana, bahkan setelah sedetik saat instance menyimpan waktu yang sama sejak dibekukan, adalah perilaku yang sama dengan Date baru ().
koma
jadi itu perilaku yang sama?
Cmag
1
@ Cmag, Ya, anggap saja momentjs sebagai objek Date pada steroid dan gunakan metode toDate hanya ketika Anda bekerja dengan lib pihak ketiga yang membutuhkan objek Date mentah. Dengan momentjs, perhitungan waktu yang kompleks lebih dari mudah, menyenangkan. Saya membuat datepicker dengannya: github.com/coma/MomentPicker/blob/master/src/MomentPicker.js
koma
Juga .format('x')opsi akan menghasilkan string timestamp.
Jimmy Knoot
66

moment().unix() Anda akan mendapatkan cap waktu unix

moment().valueOf() Anda akan mendapatkan stempel waktu penuh

Sabrina Luo
sumber
1
Untuk memformat `var CurrentDateUnixTimestamp = moment (). Unix (); moment.unix (CurrentDateUnixTimestamp) .format ("YYYY-MM-DD HH: mm"); `
Glitch
Apa perbedaan antara unixstempel waktu dan fullstempel waktu? Saya kira fullcap waktu adalah yang menunjukkan ~ aliran waktu ~ dalam milidetik sejak 1970 1 Januari tetapi saya tidak dapat menemukan yang lain.
DongBin Kim
3
.unix()memberi Anda cap waktu Unix dalam hitungan detik, .valueOf()memberi Anda cap waktu Unix dalam milidetik (AKA yang selalu saya anggap sebagai cap waktu Unix).
Andrew Koster
33

Tetap saja tidak ada jawaban. Moment.js - Dapat melakukan apa pun selain tugas yang sederhana.

Saya menggunakan ini:

moment().toDate().getTime()
catamphetamine
sumber
1
Saya suka ini lebih baik daripada +moment(). Lebih banyak karakter, tetapi lebih mudah dibaca dan dipahami.
joemaller
Saya setuju dengan @joemaller, kekhasan Javascript dapat menangkap Anda jika tidak mengambil lol awal
Ian Brindley
33

Coba gunakan dengan cara ini:

let current_time = moment().format("HH:mm")
Kerajinan4
sumber
2
Craft4 benar, silakan merujuk ke: momentjs.com/docs/#/displaying/format untuk cara menggunakan Format, tetapi tidak yakin jawabannya tepat selaras dengan pertanyaan.
simey.me
11

Jika Anda hanya ingin milidetik sejak 01-JAN-1970, maka Anda dapat menggunakannya

var theMoment = moment(); // or whatever your moment instance is
var millis;

millis = +theMoment; // a short but not very readable form
// or
millis = theMoment.valueOf();
// or (almost sure not as efficient as above)
millis = theMoment.toDate().getTime();
hgoebl
sumber
4

Coba ini

console.log(moment().format("MM ddd, YYYY hh:mm:ss a"));

console.log(moment().format("MM ddd, YYYY hh:mm:ss a"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

Durgpal Singh
sumber
2

Coba dengan cara ini:

console.log(moment().format('L'));
moment().format('L');    // 05/25/2018
moment().format('l');    // 5/25/2018

Tanggal Format:

moment().format('MMMM Do YYYY, h:mm:ss a'); // May 25th 2018, 2:02:13 pm
moment().format('dddd');                    // Friday
moment().format("MMM Do YY");               // May 25th 18
moment().format('YYYY [escaped] YYYY');     // 2018 escaped 2018
moment().format();                          // 2018-05-25T14:02:13-05:00

Kunjungi: https://momentjs.com/ untuk info lebih lanjut.

mungkin mijangos
sumber
1

Dapatkan berdasarkan Lokasi:

moment.locale('pt-br')
return moment().format('DD/MM/YYYY HH:mm:ss')
Darlan Dieterich
sumber
1
Apa yang dilakukan .locale ()?
Charith_32
Hai @ Charith_32, pada dasarnya ini menerjemahkan format yang Anda tentukan. EX; .format ('LLL')
Darlan Dieterich
1

Saya ingin menambahkan bahwa Anda dapat memiliki seluruh informasi data dalam suatu objek dengan:

const today = moment().toObject();

Anda harus mendapatkan objek dengan properti ini:

today: {
    date: 15,
    hours: 1,
    milliseconds: 927,
    minutes: 59,
    months: 4,
    seconds: 43,
    years: 2019
    }

Ini sangat berguna ketika Anda harus menghitung tanggal.

JC
sumber
0

Tanggal saat ini menggunakan momment.js dalam format DD-MM-YYYY

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Jojo Joseph
sumber