问题标签 [timespan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
726 浏览

c# - TimeSpan 和 DateTime 的格式化字符串之间的不同行为

今天编码时,我注意到时间跨度和格式化字符串有些奇怪。我试图打印一个时间跨度,例如01:03:371:03:37几个小时没有前导 0)。所以我使用了格式字符串h:mm:ss。但是,这给了我一个前导 0。如果我将 TimeSpan 转换为 DateTime 并再次执行相同的操作,h格式化字符串将按预期工作。

一个示例控制台程序:

输出:

为什么 TimeSpan 和 DateTime 的行为不同?

0 投票
1 回答
1489 浏览

c# - 将 TimeSpan 格式化为倒数计时器的正确方法是什么?

我有一个在网站上运行的计时器。它将检索用户在其订单到期之前的时间跨度。在大多数情况下,这工作正常,服务器将返回剩余的初始时间,javascript 将进行倒计时。所以它显示

2:30 2:29 2:28

然后由于某种原因,在某些页面加载时(似乎发生在计时器剩余不到 60 秒时),格式变为

-1:0-45 -1:0-46 -1:0-47

这是负责格式化时间跨度的代码:

我也刚刚尝试了以下相同的结果。

我还检查了 TimeRemaining,如果 TotalSeconds <= 0,那么它只返回 a new TimeSpan(0),所以它永远不会变成负数。搞砸倒计时的不是javascript,因为我可以禁用它,但仍然可以看到混乱的格式化时间。

有没有更好/更清洁的方法来做到这一点?

0 投票
3 回答
2891 浏览

c# - 时间跨度日怎么可能只持续 8 小时?

我以分钟为单位保存了一个持续时间,并希望输出“1 天 5 小时 30 分钟”。目前我将分钟添加到时间跨度并执行以下操作:

但现在我只对一天的工作时间感兴趣。因此,当 TimeSpan 的持续时间为 27 小时时,它不应创建输出“1 天 3 小时”。我想要“3天3小时”。

是否有一种简单的方法可以使用 Timespan 对象来做到这一点?是否可以更改 TimeSpan 的默认行为?还是我必须编写自己的自定义时间跨度类?

谢谢cpt.oneeye

0 投票
5 回答
842 浏览

php - SQL时间段查询

我需要从表中选择在 CURDATE() 和 6 周前之间添加了 date_add 的所有行。

请帮忙。

0 投票
10 回答
45350 浏览

c# - 格式化 TimeSpan 大于 24 小时

假设我将一些秒转换为 TimeSpan 对象,如下所示:

如何将 TimeSpan 对象格式化为如下格式:

是否有内置函数或者我需要编写自定义函数?

0 投票
4 回答
5530 浏览

c# - TimeSpan 的自定义字符串格式

我想以这种方式在 C# 中格式化 TimeSpan:

xxx 天 yyy 小时 zzz 分钟

条件:

  1. 额外的秒数应该被截断

  2. 天是我想要的最大单位。我希望 34 天显示为 34 天,而不是 1 个月 4 天等。

  3. 如果时间跨度小于一天,我不希望出现一天部分。同样,如果跨度小于 1 小时,我只想显示分钟部分。

有什么办法可以使用内置格式字符串来做到这一点,或者除了编写自己的函数之外别无他法?

编辑:目前为此使用我自己的功能。以分钟为单位的 TimeSpan 作为输入(TimeSpan.TotalMinutes)

0 投票
3 回答
7838 浏览

powershell - 使用 PowerShell 时间跨度进行算术运算

PowerShell 时间跨度非常适合快速显示持续时间,例如:

但是,如果我$loopcount在该时间范围内进行了处理迭代,我如何将持续时间除以$loopcount得到每次迭代的平均持续时间?

0 投票
8 回答
32298 浏览

c# - 在 TimeSpan 上使用 String.Format 以输出完整的秒数而不是毫秒

我想在一个字符串中显示两个日期之间经过的时间。

假设我有以下代码:

我的期望:

我得到什么:

有没有办法使用 String.Format 函数只返回整秒?
我还尝试使用以下方法删除小数位:

但这也不起作用,因为 elapsed.Miliseconds 返回 500 作为整数。

0 投票
1 回答
231 浏览

.net - .Net 4 中日期和两次的最佳方法/数据类型

我有一个方法,它接受一些参数并生成一些 XML 以发送到 [archaic] Web 服务。

我需要包含在 XML 中:

日期 (yyyy-mm-dd)

开放时间 (hh:mm)

关门时间 (hh:mm)

现在,当我不得不单独提供日期/时间时,我采用了一个 DateTime 参数并将日期格式化为一个字段,将时间格式化为另一个字段。

在这种情况下,我有一个日期和一天中的 2 次。

我最初的方法是 3 个输入字段 - 一个日期,2 个时间跨度。这感觉不对,因为时间跨度可能超过一天。

另一个想法是取 2 个日期 - 将一个日期用于日期字段,然后将两个日期的时间用于其他字段。这感觉不对,因为提供的日期实际上可能是不同的日子。

我能想到的最后一个选项是有一个OpeningDateTime参数和一个OpenDuration时间跨度,但是,由于开/关时间是根据星期几(而不是日期)存储的,开发人员需要自己计算时间跨度——这看起来很愚蠢违反 DRY 原则。更不用说时间跨度可以> 1天

简而言之,我有 3 个可行的解决方案,但没有一个感觉是正确的——前 2 个解决方案只会在运行时解决问题。如果方法定义很难传入无效数据(如果不是不可能的话),我会更喜欢它 - 然后在设计时会看到

也许我过度分析了,但必须有一种更简洁的方法来做到这一点

有没有人有首选的方法,如果有,为什么?

0 投票
3 回答
18053 浏览

c# - 为什么我的 TimeSpan.Add() 不起作用?

必须有一个简单的答案:

列表中只有一个值,timeSheets它是肯定的TimeSpan(经当地检查验证)。