Làm cách nào để trả về dấu thời gian hiện tại với Moment.js?


157

Mọi người,

Tôi đang cố gắng để hiểu API MomentJS. Cách thích hợp để có được thời gian hiện tại trên máy là gì?

var CurrentDate = moment();

đấu với

var CurrentDate = moment().format();

Cố gắng phân tích tài liệu của họ, và không rõ nên sử dụng cái gì.

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


1
Thời điểm hiện tại là gì? dấu thời gian unix?
hôn mê

Tôi sẽ tưởng tượng RFC3339 hoặc bất cứ id id tiêu chuẩn internet nào để quay lại máy khách, v.v.
Cmag

2
Quay trở lại máy khách ... hummm ... Tôi đoán rằng bạn đang nhận được nó trong nodejs và gửi nó đến trình duyệt muốn chuyển đổi nó một lần nữa thành một ví dụ?
hôn mê

1
Xin lỗi, bạn đã tìm thấy câu trả lời của tôi hữu ích?
hôn mê

1
hoàn toàn, tôi nghĩ rằng :) đã hỏi một câu hỏi nhanh liên quan đếnvar now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

Câu trả lời:


239

Ở đây bạn đang chỉ định một thể hiện của khoảnh khắc cho CurrentDate:

var CurrentDate = moment();

Đây chỉ là một chuỗi, kết quả từ định dạng mặc định của một cá thể khoảnh khắc:

var CurrentDate = moment().format();

Và đây là số giây kể từ tháng một của ... tốt, dấu thời gian unix:

var CurrentDate = moment().unix();

Và đây là một chuỗi khác là ISO 8601 ( Sự khác biệt giữa Định dạng ngày ISO 8601 và RFC 3339 là gì? ):

var CurrentDate = moment().toISOString();

Và điều này cũng có thể được thực hiện:

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

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

điều này sẽ được chấp nhận? var now = new Date().getTime(); userObject.registered = moment(now).toDate();
Cmag

1
@Cmag, tôi không hiểu câu hỏi, nhưng hãy xem cái này: jsfiddle.net/coma/bLe31qq0 , như bạn có thể thấy ở đó, ngay cả sau một giây, ví dụ khoảnh khắc vẫn giữ nguyên thời gian kể từ khi nó bị đóng băng, là hành vi tương tự như Ngày mới ().
hôn mê

vậy hành vi của nó có giống nhau không?
Cmag

1
@Cmag, Vâng, đó là, hãy nghĩ về khoảnh khắc như một đối tượng Date trên steroid và chỉ sử dụng phương thức toDate khi bạn đang làm việc với libs của bên thứ ba cần một đối tượng Date thô. Với thời điểm này, việc tính toán thời gian phức tạp là dễ dàng hơn, rất dễ chịu. Tôi đã tạo ra một datepicker với nó: github.com/coma/MomentPicker/blob/master/src/MomentPicker.js
hôn mê

Ngoài ra .format('x')tùy chọn sẽ tạo ra một chuỗi dấu thời gian.
Jimmy Knoot

66

moment().unix() bạn sẽ nhận được dấu thời gian unix

moment().valueOf() bạn sẽ nhận được một dấu thời gian đầy đủ


1
Để định dạng `var CurrentDateUnixTimestamp = khoảnh khắc (). Unix (); khoảnh khắc.unix (CurrentDateUnixTimestamp) .format ("YYYY-MM-DD HH: mm"); `
Glitch

Sự khác biệt giữa unixdấu thời gian và fulldấu thời gian là gì? Tôi cho rằng fulldấu thời gian là thứ biểu thị ~ dòng thời gian ~ tính bằng mili giây kể từ ngày 1 tháng 1 năm 1970 nhưng tôi không thể tìm ra cái khác.
DongBin Kim

3
.unix()cung cấp cho bạn dấu thời gian Unix tính bằng giây, .valueOf()cung cấp cho bạn dấu thời gian Unix tính bằng mili giây (AKA mà tôi luôn nghĩ là dấu thời gian Unix).
Andrew Koster

33

Vẫn không có câu trả lời. Moment.js - Có thể làm bất cứ điều gì ngoại trừ một nhiệm vụ đơn giản như vậy.

Tôi đang sử dụng cái này:

moment().toDate().getTime()

1
Tôi thích điều này hơn +moment(). Nhiều nhân vật hơn, nhưng dễ đọc và dễ hiểu hơn.
joemaller

Tôi đồng ý với điều đó @joemaller, các đặc điểm riêng của Javascript có thể giúp bạn hiểu ra nếu không được phát hiện sớm lol
Ian Brindley

33

Hãy thử sử dụng nó theo cách này:

let current_time = moment().format("HH:mm")

2
Craft4 là chính xác, vui lòng tham khảo: Momentjs.com/docs/#/displaying/format để biết cách sử dụng Format, nhưng không chắc câu trả lời được căn chỉnh chính xác với câu hỏi.
simey.me

11

Nếu bạn chỉ muốn một phần nghìn giây kể từ 01-JAN-1970, thì bạn có thể sử dụng

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

Thử cái này

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

Hãy thử cách này:

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

Định dạng ngày:

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

Truy cập: https://momentjs.com/ để biết thêm thông tin.


1

Nhận theo địa điểm:

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

1
.Locale () làm gì?
Charith_32

Xin chào @ Charith_32, về cơ bản, điều này sẽ dịch định dạng của bạn. VÍ DỤ; .format ('LLL')
Darlan Dieterich

1

Tôi muốn thêm rằng bạn có thể có toàn bộ thông tin dữ liệu trong một đối tượng với:

const today = moment().toObject();

Bạn sẽ nhận được một đối tượng có thuộc tính này:

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

Nó rất hữu ích khi bạn phải tính ngày.


0

Ngày hiện tại sử dụng momment.js ở định dạng DD-MM-YYYY

const currentdate=moment().format("DD-MM-YYYY"); 
console.log(currentdate)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.