วิธีคืนค่าการประทับเวลาปัจจุบันด้วย Moment.js


157

folks,

ฉันพยายามทำความเข้าใจ MomentJS API วิธีที่เหมาะสมในการรับเวลาปัจจุบันบนเครื่องคืออะไร?

var CurrentDate = moment();

VS

var CurrentDate = moment().format();

พยายามแยกเอกสารของพวกเขาและไม่ชัดเจนว่าจะใช้อะไร

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


1
เวลาปัจจุบันเป็นอะไร เวลาประทับยูนิกซ์?
โคม่า

ฉันนึกภาพ RFC3339 หรือรหัสมาตรฐานอินเทอร์เน็ตใด ๆ เพื่อกลับไปหาลูกค้า ฯลฯ
Cmag

2
กลับไปที่ไคลเอนต์ ... hummm ... ฉันเดาว่าคุณได้รับมันใน nodejs และส่งไปยังเบราว์เซอร์ที่ต้องการแปลงอีกครั้งเพื่ออินสแตนซ์ครู่หนึ่ง?
โคม่า

1
ขออภัยคุณพบว่าคำตอบของฉันมีประโยชน์หรือไม่
coma

1
อย่างผมคิดว่า :) ถามคำถามอย่างรวดเร็วเกี่ยวกับvar now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

คำตอบ:


239

ที่นี่คุณกำลังกำหนดอินสแตนซ์ของ momentjs ให้กับ CurrentDate:

var CurrentDate = moment();

นี่เป็นเพียงสตริงผลลัพธ์จากการจัดรูปแบบเริ่มต้นของอินสแตนซ์ช่วงเวลา:

var CurrentDate = moment().format();

และนี่คือจำนวนวินาทีตั้งแต่วันที่มกราคม ... ดี, ยูนิกซ์เวลา:

var CurrentDate = moment().unix();

และนี่คือสตริงอื่นตาม ISO 8601 ( รูปแบบวันที่ ISO 8601 และ RFC 3339 ต่างกันอย่างไร ):

var CurrentDate = moment().toISOString();

และสิ่งนี้สามารถทำได้เช่นกัน:

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

console.log(a.isSame(b)); // true

สิ่งนี้จะเป็นที่ยอมรับหรือไม่ var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

1
@Cmag ฉันไม่เข้าใจคำถาม แต่ลองดูที่นี่: jsfiddle.net/coma/bLe31qq0อย่างที่คุณเห็นมีแม้หลังจากวินาทีที่วินาทีที่อินสแตนซ์เก็บไว้ในเวลาเดียวกันเพราะมันเป็นน้ำแข็ง พฤติกรรมเช่นเดียวกับวันที่ใหม่ ()
coma

ดังนั้นพฤติกรรมเดียวกันหรือไม่
Cmag

1
@Cmag, ใช่, เป็น, ลองคิดว่า momentjs เป็นอ็อบเจกต์ Date บนสเตอรอยด์และใช้เมธอด toDate เฉพาะเมื่อคุณทำงานกับ libs บุคคลที่สามที่ต้องการออบเจ็กต์ raw ด้วย momentjs การคำนวณเวลาที่ซับซ้อนนั้นง่ายกว่าและน่าพอใจ ฉันสร้าง datepicker ด้วย: github.com/coma/MomentPicker/blob/master/src/MomentPicker.js
coma

นอกจากนี้ยังมี.format('x')ตัวเลือกที่จะสร้างสตริงประทับเวลา
Jimmy Knoot

66

moment().unix() คุณจะได้รับการประทับเวลายูนิกซ์

moment().valueOf() คุณจะได้รับการประทับเวลาเต็ม


1
ในการจัดรูปแบบ `var CurrentDateUnixTimestamp = ครู่ (). unix (); moment.unix (ปัจจุบันวันที่ UnixTimestamp) .format ("YYYY-MM-DD HH: mm"); `
ทันทีทันใด

ความแตกต่างระหว่างการunixประทับเวลาและการfullประทับเวลาคืออะไร ฉันคิดว่าการfullประทับเวลาคือสิ่งที่บ่งบอกถึง ~ time flow ~ เป็นมิลลิวินาทีตั้งแต่ 1970 Jan 1 แต่ฉันไม่สามารถหาอีกอันได้
DongBin Kim

3
.unix()ให้เวลา Unix แก่คุณในไม่กี่วินาที.valueOf()ให้ Unix Timestamp เป็นมิลลิวินาที (AKA สิ่งที่ฉันคิดเสมอว่าเป็น Unix Timestamp)
Andrew Koster

33

ยังไม่มีคำตอบ Moment.js - สามารถทำอะไรก็ได้นอกจากเป็นงานง่าย ๆ

ฉันใช้สิ่งนี้:

moment().toDate().getTime()

1
+moment()ผมชอบแบบนี้ดีกว่า อักขระเพิ่มเติม แต่อ่านและเข้าใจได้ง่ายขึ้น
joemaller

ฉันเห็นด้วยกับ @joemaller, นิสัยแปลกของ Javascript สามารถจับคุณออกหากไม่ได้รับก่อน lol
Ian Brindley


11

หากคุณต้องการมิลลิวินาทีตั้งแต่ 01-JAN-1970 คุณสามารถใช้งานได้

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


2

ลองด้วยวิธีนี้:

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

รูปแบบวันที่:

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

เยี่ยมชม: https://momentjs.com/สำหรับข้อมูลเพิ่มเติม



1

ฉันต้องการเพิ่มว่าคุณสามารถมีข้อมูลทั้งหมดในวัตถุด้วย:

const today = moment().toObject();

คุณควรรับวัตถุที่มีคุณสมบัตินี้:

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

มันมีประโยชน์มากเมื่อคุณต้องคำนวณวันที่


0

วันที่ปัจจุบันใช้ momment.js ในรูปแบบ DD-MM-YYYY

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.