如何使用 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 返回当前时间戳?的主要内容,如果未能解决你的问题,请参考以下文章