gpt4 book ai didi

node.js - Moment.js - 格式化现有时间?

转载 作者:行者123 更新时间:2023-12-02 14:35:24 24 4
gpt4 key购买 nike

我正在使用 moment.js 来处理 Node.js 中的日期和时间。到目前为止,我已经能够用它完成我需要的一切,但我在格式化时间时遇到问题。

这是场景:

用户输入记录在数据库中的数据(整数)以及日期(格式为 YYYY-MM-DD)和时间(格式为 HH:MM:SS)。

下次用户输入数据时,将读入先前的值并与新值进行比较(更高、更低或等于)。不过,我还想显示一条消息,例如“您上次提交数据的时间是 DATE TIME”。在本例中,我希望时间以不同的格式显示(例如“h:mm a”即“12:34 pm”)。

我可以使用 moment 来格式化现有日期,还是 moment 只能返回当前日期/时间?在我的代码中,我有以下功能:

function userFormattedTime(time)
{
let uTime = moment(time).format('h:mm a');
return uTime
}

但是,当我调用此函数并向其传递时间(从数据库中获取)时,我得到“无效时间”。我做错了什么?

最佳答案

您可以将字符串从字符串解析回 moment 对象,然后您可以使用 moment 将日期重新格式化为任何其他格式。

我猜你做错的地方是没有告诉你要发回的内容,即它不理解你提供的格式化字符串。

请注意格式值 HH:mm:ss,其大小写不同。该案例很重要,应根据您的要求进行设置。 https://momentjs.com/docs/#/parsing/

// Original date time string
var rawDateTime = "02-02-2018 10:20:30";

// convert string to a moment object
var originalDate = moment(rawDateTime, "MM-DD-YYYY HH:mm:ss");

// Format a new string from the moment object
var newFormattedString = originalDate.format('h:mm a');

为了计算矩对象的差异,您可以使用 diff 函数。 https://momentjs.com/docs/#/displaying/difference/

// Two different dates
var dateOne = moment("02-02-2018 10:20:30", "MM-DD-YYYY HH:mm:ss");
var dateTwo = moment("04-04-2018 10:20:30", "MM-DD-YYYY HH:mm:ss");

// Get the difference of the two dates
var diff = dateOne.diff(dateTwo);

关于node.js - Moment.js - 格式化现有时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48806399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com