Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来澄清关于moment.js的一些疑问_Javascript_Datetime_Momentjs - Fatal编程技术网

Javascript 来澄清关于moment.js的一些疑问

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

由于对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 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的人带来什么好处?

我相信您正在寻找