作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 JavaScript 中有两个日期,start
和 finish
,由 Moment.js 解析。如果 start
晚于 finish
而无需创建第三个日期,那么交换它们的最有效方法是什么?通常,日期将是这样一个函数的参数:
function getDates(start, finish) {
var start_date = moment(new Date(start));
var finish_date = moment(new Date(finish));
if (start_date.diff(finish_date) > 0) {
// Swap code goes here...
}
}
人们可能想要交换日期的原因是因为某些函数的定义方式即使交换日期也会返回相同的结果,但函数需要知道哪个日期更早。例如,Microsoft Excel 中的 YEARFRAC 就是这样工作的。您可以查看我对该函数 here 的实现,以获取次优日期交换的示例。
预先感谢您的帮助!
最佳答案
What would be the most efficient way to swap them if start is posterior to finish
第三个变量。为了好玩,您可以使用 destructuring assignment 防止在句法上围绕它工作,但这几乎不会对性能产生影响。
without having to create a third date?
这就是使用变量的意义所在。随着binary operator way您提到您需要将 Date 对象转换为整数,应用该操作,然后根据整数创建两个新的 Date 对象。
关于javascript - 如何在 JavaScript 中交换两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14431518/
我是一名优秀的程序员,十分优秀!