首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较javascript中的日期时间字符串格式:(YYYY:YY)

如何比较javascript中的日期时间字符串格式:(YYYY:YY)
EN

Stack Overflow用户
提问于 2018-11-15 19:39:27
回答 3查看 1.4K关注 0票数 3

我有一系列这样的约会时间。它们是作为字符串提供的。我需要能够隔离所提供的数组的最小dateTime和最大dateTime,但是我很难弄清楚如何做到这一点?是否可以将每个字符串提供给->新日期(DateTime),然后以这种方式比较这两个对象?或者我必须解析,然后比较日期和比较时间分别?

示例值:

代码语言:javascript
复制
  4: "2018-11-15 00:16"
  5: "2018-11-15 00:52"
  6: "2018-11-15 02:24"
  7: "2018-11-15 03:02"
  8: "2018-11-15 02:49"
  9: "2018-11-15 00:14"
  10: "2018-11-15 02:20"

在这个例子中,我需要隔离9作为最小值,7作为数组中的最大值。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-15 19:45:47

打字本:

代码语言:javascript
复制
const dates = ["2018-11-15 00:16", "2018-11-15 00:52", ...];
const sortedDates = dates.sort();
const minDate = sortedDates[0];
const maxDate = sortedDates[sortedDates.length - 1];

是的,你可以:

代码语言:javascript
复制
new Date("2018-11-15 00:16") < new Date("2018-11-15 00:52") => true
票数 4
EN

Stack Overflow用户

发布于 2018-11-15 19:51:44

阅读其他答案,我不得不提出以下几点:

  • 不需要转换到Date
  • 排序具有O(nlogn)时间复杂度,而寻找最小/最大值可以在O(n)时间内完成。

代码语言:javascript
复制
var arr =["2018-11-15 00:16", "2018-11-15 00:52", "2018-11-15 02:24", "2018-11-15 03:02", "2018-11-15 02:49", "2018-11-15 00:14", "2018-11-15 02:20"];

var minDate = arr.reduce((a, b) => a < b ? a : b);
var maxDate = arr.reduce((a, b) => a > b ? a : b);

console.log("min", minDate, "at index", arr.indexOf(minDate));
console.log("max", maxDate, "at index", arr.indexOf(maxDate));

票数 2
EN

Stack Overflow用户

发布于 2018-11-15 19:45:04

ONELINER:不是最快的( O(nlogn) ),而是短代码--我假设您的日期字符串在a数组中

代码语言:javascript
复制
let min=a.sort()[0], max=a.slice(-1)[0];

结果在varaible minmax中,工作示例HERE中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53326817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档