当前位置: 首页 > 面试题库 >

遍历NodeJS中的一系列日期

陶柏
2023-03-14
问题内容

我想遍历一系列的日历日期,每次迭代为+1天。我将使用Java中围绕JodaTime构建的东西-NodeJS中是否有类似的东西?


问题答案:

您可以在node.js应用程序中使用moment.js。

npm install moment

然后,您可以很容易地做到这一点:

var moment = require('moment');

var a = moment('2013-01-01');
var b = moment('2013-06-01');

// If you want an exclusive end date (half-open interval)
for (var m = moment(a); m.isBefore(b); m.add(1, 'days')) {
  console.log(m.format('YYYY-MM-DD'));
}

// If you want an inclusive end date (fully-closed interval)
for (var m = moment(a); m.diff(b, 'days') <= 0; m.add(1, 'days')) {
  console.log(m.format('YYYY-MM-DD'));
}

嗯…这看起来很像您已经在自己的答案中编写的代码。Moment.js是一个更受欢迎的库,具有大量功能,但是我想知道哪个库的性能更好?也许您可以测试并告诉我们。:)

但是这些都不像JodaTime那样出色。为此,您需要一个使用JavaScript实现TZDB的库。我在这里列出其中一些。

另外,请注意一般的JavaScript日期问题。这也会影响NodeJS。



 类似资料:
  • 问题内容: 我有以下代码可以做到这一点,但是我该如何做得更好呢?现在,我认为它比嵌套循环更好,但是当列表理解器中包含生成器时,它开始变得。 笔记 - 我实际上并没有用它来打印。这只是出于演示目的。 - 在和变量是因为我不需要时间戳对象。(它们将用于生成报告)。 样本输出 开始日期为2019-05-30,结束日期为2019-06-09: 问题答案: 为什么会有两个嵌套的迭代?对我来说,它仅需一次迭代

  • 问题内容: 我发现我正在编写许多Makefile,可以使用 n个 元组列表清除它们。但是我找不到任何正确(干净)地进行此操作的方法。到目前为止,我只能使用 $(shell …) 和 tr , sed 或其他非Makefile标准。 例如,我想这样做: 有没有一种很好的方法来迭代Makefile中的 n个 元组列表?谢谢! 问题答案: Makefile本质上是声明性的,因此我认为make本身不能提供

  • 输入是一个列表列表。请看下面。文件名是一个列表,包含的名称与列表中的列表数量相同(,,) 每个名称都附加到路径中:-- 程序在遍历列表时遍历包含路径的列表,并打印路径及其文件名。我希望输出是--。然而,我得到了下面的输出。请查看输入后的输出 输入 输出 我希望输出是-- 然而,我得到的结果如下: 我无法理解为什么在遍历列表时不能使用文件名遍历路径列表。我希望这有助于澄清问题。有人能帮忙吗? 我已经

  • 问题内容: 我想从MySQL表中获取所有列名,遍历每个列名,然后使用这些列名作为变量运行存储过程。效果: 看起来会给我列名,但是如何将列名放入循环? 我真的很想使用本机SQL在存储过程中运行所有这些程序。由于我仍在学习MySQL的复杂性,因此对我的项目确实有帮助。谢谢你的帮助。 问题答案: 我想你想要这样的东西:

  • 问题内容: 这样遍历Java中的列表是否较慢: 相对于: 问题答案: 我假设您出于好奇而问,不会引用Knuth(可能有人会)。 我相信,一旦您的代码被编译,就不会有任何改变。它 确实 有所作为 之前 (例如2是很多更易读和简洁的),所以要为2号和不关心的休息。 就是我的2美分 编辑 请注意,代码段1中的代码会在每次循环运行时进行计算,这可能使其比代码2还要慢 还需要编辑 我必须仔细检查一下,Jos

  • 问题内容: 我有一个这样的清单清单。 现在,我需要遍历上面的列表并输出一个字符串列表,如下所示(原始列表中没有数字) 问题答案: 准确执行您指定的操作的最简单解决方案是: 这基本上等效于迭代版本: 但是,这并不是遍历具有任意维数的多维列表的通用方法,因为嵌套列表推导/嵌套的for循环可能很难看。但是,对于2或3维列表,您应该放心。 如果您确实决定需要平整3个以上的尺寸,我建议实现一个递归遍历函数,