如何使用 Moment.js 返回当前时间戳?

Posted

技术标签:

【中文标题】如何使用 Moment.js 返回当前时间戳?【英文标题】:How to return the current timestamp with Moment.js? 【发布时间】:2014-11-02 06:59:57 【问题描述】:

伙计们,

我正在尝试了解 MomentJS API。在机器上获取当前时间的适当方法是什么?

var CurrentDate = moment();

var CurrentDate = moment().format();

试图解析他们的文档,但不清楚使用什么。

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

【问题讨论】:

当前时间是多少? unix 时间戳 我会想象 RFC3339 或任何互联网标准 id 用于返回给客户端等 返回客户端...嗯...我猜你是在nodejs中获取它并将它发送到浏览器想要再次将其转换为momentjs实例? 抱歉,我的回答对您有帮助吗? 绝对是,我认为 :) 问了一个关于var now = new Date().getTime(); userObject.registered = moment(now).toDate();的快速问题 【参考方案1】:

在这里,您将 momentjs 的实例分配给 CurrentDate:

var CurrentDate = moment();

这里只是一个字符串,来自 momentjs 实例的默认格式:

var CurrentDate = moment().format();

这里是自 1 月以来的秒数......好吧,unix 时间戳:

var CurrentDate = moment().unix();

这里还有另一个字符串为 ISO 8601 (What's the difference between ISO 8601 and RFC 3339 Date Formats?):

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,我不明白这个问题,但看看这个:jsfiddle.net/coma/bLe31qq0,你可以在那里看到,即使在一秒钟之后,时刻实例保持相同的时间,因为它是冻结,与 new Date() 的行为相同。 所以它的行为相同? @Cmag,是的,将 momentjs 视为类固醇上的 Date 对象,并且仅在使用需要原始 Date 对象的第三方库时才使用 toDate 方法。使用 momentjs,复杂的时间计算非常简单,令人愉快。我用它制作了一个日期选择器:github.com/coma/MomentPicker/blob/master/src/MomentPicker.js .format('x') 选项也会生成一个时间戳字符串。【参考方案2】:

moment().unix()你会得到一个unix时间戳(以秒为单位)

moment().valueOf()你会得到一个完整的时间戳(以毫秒为单位)

【讨论】:

格式化`var CurrentDateUnixTimestamp = moment().unix(); moment.unix(CurrentDateUnixTimestamp).format("YYYY-MM-DD HH:mm");` unix 时间戳和full 时间戳有什么区别?我想full 时间戳表示自 1970 年 1 月 1 日以来的〜时间流〜以毫秒为单位,但我无法弄清楚另一个。 .unix() 为您提供以秒为单位的 Unix 时间戳,.valueOf() 为您提供以毫秒为单位的 Unix 时间戳(也就是我一直认为的 Unix 时间戳)。 @AndrewKoster 我要指出,UNIX 时间戳 (POSIX) 实际上定义为自 1/1/1970 00:00:00 忽略的 UTC 数闰秒。所以说“以秒为单位的unix时间戳”实际上是多余的,最近对使用毫秒的痴迷让我感到沮丧。只有在应用程序需要时才应该使用毫秒。大多数应用程序不需要这种粒度,当我发现 js valueOf 使用millis 时,我感到很失望,因为它强化了一个糟糕的 imo 模式。 即您一直认为的 UNIX 时间戳实际上是不正确的。你有他们倒退。时刻js调用函数unix是有原因的...【参考方案3】:

仍然没有答案。 Moment.js - 除了这么简单的任务之外,什么都可以做。

我正在使用这个:

moment().toDate().getTime()

【讨论】:

【参考方案4】:

尝试这样使用它:

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

【讨论】:

Craft4 正确,Format 的使用方法请参考:momentjs.com/docs/#/displaying/format,但不确定答案是否与问题完全一致。 简单漂亮【参考方案5】:

如果您只想要自 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();

【讨论】:

【参考方案6】:

试试这个

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>

【讨论】:

【参考方案7】:

按位置获取:

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

【讨论】:

.locale() 有什么作用? 嗨@Charith_32,基本上这会翻译您定义的格式。前任; .format('LLL')【参考方案8】:

试试这个方法:

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/ 了解更多信息。

【讨论】:

【参考方案9】:

使用 DD-MM-YYYY 格式的 momment.js 的当前日期

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

【讨论】:

【参考方案10】:

我想补充一点,您可以将整个数据信息放在一个对象中:

const today = moment().toObject();

您应该获得具有以下属性的对象:

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

当您必须计算日期时,它非常有用。

【讨论】:

【参考方案11】:

要使用 am / pm 和 moment,这里是一个来自 react 组件的 sn-p

import Moment from 'moment';

const time = Moment().format("hh:mm a")

作为参考,请记住Moment.js is considered a legacy project,它可以带来性能开销

【讨论】:

【参考方案12】:

致所有使用react-moment的人:

import Moment from 'react-moment'

内部渲染(使用 format 支持您需要的格式):

const now = new Date()
<Moment format="MM/DD/YYYY">now</Moment>

【讨论】:

以上是关于如何使用 Moment.js 返回当前时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

moment.js 快捷查询

实现简易版的moment.js

实现简易版的moment.js

Moment.js 中的 DD/MM/YYYY 日期格式

如何使用 moment.js 添加天数,不包括周末?

Unix时间戳的moment.js格式?