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/


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

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


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()

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


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();

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>


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.


1

Dapatkan berdasarkan Lokasi:

moment.locale('pt-br')
return moment().format('DD/MM/YYYY HH:mm:ss')

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.


0

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

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.