Javascript 来澄清关于moment.js的一些疑问
由于对moment.js的一些疑问,我的项目陷入了困境。我将在这里陈述我在项目后端编写过程中得出的一些结论,若有什么不对劲,请有人纠正我好吗 例如,如果我从fronted获取datetime字符串,格式为: “THU 2017年3月18日09:20 AM”,我应该创建将此字符串传递给它的矩对象,并且传递字符串时的相应标记“ddd DD MMM YYYY HH:mm A”不是标准ISO 8601格式Javascript 来澄清关于moment.js的一些疑问,javascript,datetime,momentjs,Javascript,Datetime,Momentjs,由于对moment.js的一些疑问,我的项目陷入了困境。我将在这里陈述我在项目后端编写过程中得出的一些结论,若有什么不对劲,请有人纠正我好吗 例如,如果我从fronted获取datetime字符串,格式为: “THU 2017年3月18日09:20 AM”,我应该创建将此字符串传递给它的矩对象,并且传递字符串时的相应标记“ddd DD MMM YYYY HH:mm A”不是标准ISO 8601格式 var datetime = moment(datetimeFromFrontend, "ddd
var datetime = moment(datetimeFromFrontend, "ddd DD MMM YYYY HH:mm A");
现在我有了可以按我想要的方式格式化的矩对象,对矩对象调用format()函数。
如果我想对datetime进行一些操作(例如,与今天的datetime进行比较,或者只比较时间部分),是否必须使用isBefore、isEqual等将所有操作的datetime、time或任何东西转换为具有相同格式的矩对象,或者我可以使用>,
如果我需要将(>,.after
函数的条目
矩().isAfter(矩|字符串|数字|日期|数组)
正如您所看到的,您可以将任何内容传递给.isAfter
,它将为您完成这项工作
moment().isAfter(new Date(2017, 2, 4))
// true
moment(new Date(2016, 2, 4)).isAfter(new Date(2017, 2, 4))
// false
当然,比较>、Date::getTime
获取时间戳,但这是一个丑陋的代码
以及如何保存到SQL数据库列,即DATETIME或TIME类型?是否应该使用format()进行从瞬间对象到字符串的转换?SQL将自动将传递的字符串转换为相应的数据类型
我认为这取决于SQL的工作方式以及服务器与它的通信方式,ORACLE,您应该参考任何关于在SQL中存储日期对象的文档,最终日期和格式都是关于使unix时间戳成为人类可读/可理解的
我假设“now”不能直接传递给sql查询,因为它是矩对象,应该将其转换为字符串(并依赖于从string/nvarchar到datetime的sql自动转换),还是应该将其另存为矩().toDate()
问问自己,从数据库中获取不可知日期对象,而不仅仅是简单的严格格式字符串,会给您或任何可能使用API的人带来什么好处
如果我需要将(>,.after
函数的条目
矩().isAfter(矩|字符串|数字|日期|数组)
正如您所看到的,您可以将任何内容传递给.isAfter
,它将为您完成这项工作
moment().isAfter(new Date(2017, 2, 4))
// true
moment(new Date(2016, 2, 4)).isAfter(new Date(2017, 2, 4))
// false
当然,比较>、Date::getTime
获取时间戳,但这是一个丑陋的代码
以及如何保存到SQL数据库列,即DATETIME或TIME类型?是否应该使用format()进行从瞬间对象到字符串的转换?SQL将自动将传递的字符串转换为相应的数据类型
我认为这取决于SQL的工作方式以及服务器与它的通信方式,ORACLE,您应该参考任何关于在SQL中存储日期对象的文档,最终日期和格式都是关于使unix时间戳成为人类可读/可理解的
我假设“now”不能直接传递给sql查询,因为它是矩对象,应该将其转换为字符串(并依赖于从string/nvarchar到datetime的sql自动转换),还是应该将其另存为矩().toDate()
问问自己,从数据库中获取不可知日期对象,而不仅仅是简单的严格格式字符串,会给您或任何可能使用API的人带来什么好处?我相信您正在寻找