gpt4 book ai didi

javascript - AngularJS 显示两个日期,而不显示相似的部分两次

转载 作者:行者123 更新时间:2023-12-02 16:12:12 27 4
gpt4 key购买 nike

如何很好地显示由两个日期组成的日期范围?我要寻找的主要内容是,如果两个日期都相同,则不要显示两次。我在想这样的事情:

Tue, 05 May 2015 19:31-20:31 GMT

Mon, 04 19:31 - Tue, 05 20:31 May 2015

如果有一些重叠也没关系,例如:

Mon May 4th, 19:31 - Tue May 5th, 20:31 2015

我们的目标是让用户看到一些好看的东西。我不知道从哪里开始 - 现在我只知道如何显示两个完整日期。我在搜索中找不到任何内容 - 很多关于如何格式化单个日期的信息,但没有找到如何格式化两个日期的信息。

我正在使用 AngularJS,但如果您知道如何在没有 Angular 的情况下做到这一点,那就没问题了。

最佳答案

您问题中的标签表明您想要在 AngularJS 中格式化日期范围。然而,这对我来说似乎是一个普遍的 Javascript 问题,除非你想要使用 Angular 过滤器优雅地解决问题。

我建议您使用MomentJS它有很多用于格式化和比较日期的实用函数。 moment-range还可以为您提供一些方便的方法,但是我没有看到任何格式化方法。

var date1 = momentjs('2015-05-05 12:15');
var date2 = momentjs('2015-05-10 12:15');

这些日期有重叠的年份、月份和时间。您可以使用 date1.isSame(date2, 'year') 检测到这一点。使用月份、日期、时间等执行此操作。

然后使用 date1.format(...) + ' - ' + date2.format(...) 格式化您的范围,具体取决于哪些日期属性是相同的。

如果需要,请将所有代码包装在 Angular 过滤器中:

angular.module('myApp').filter('dateRange', function () {
return function (date1, date2) {
// date range stuff here
};
});

$scope 上设置 date1date2 后,在模板中使用过滤器

{{date1 | dateRange:date2}}

关于javascript - AngularJS 显示两个日期,而不显示相似的部分两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30059049/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com