我使用moment.js处理node.js中的日期和时间。到目前为止,我已经能够用它做我需要的一切,但是我在格式化时间方面遇到了问题。
下面是一个场景:
用户输入数据(一个整数),该数据记录在数据库中,同时输入日期(格式为YYYY DD)和时间(格式为HH:MM:SS)。
下次用户输入数据时,将读取前一个值并比较(较高、较低或等于)新值。不过,我还想显示一条消息,例如“上次提交数据的时间是在日期”。在这种情况下,我希望时间以不同的格式显示(例如"h:mm a“,即"12:34 pm")。
是否可以使用矩来格式化现有日期,或者仅返回当前日期/时间?在我的代码中,我有以下函数:
function userFormattedTime(time)
{
let uTime = moment(time).format('h:mm a');
return uTime
}但是,当我调用这个函数并将时间传递给它(从数据库获取)时,我会得到“无效时间”。我做错了什么?
发布于 2018-02-15 11:48:56
您可以将字符串从字符串解析回矩对象,然后可以使用矩将日期重新格式化为任何其他格式。
我想您所做的错误并不是说明您要将其发回的时刻,即它不理解您所提供的格式化字符串。
请注意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);https://stackoverflow.com/questions/48806399
复制相似问题