问题标签 [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.
c# - TimeSpan 和 DateTime 的格式化字符串之间的不同行为
今天编码时,我注意到时间跨度和格式化字符串有些奇怪。我试图打印一个时间跨度,例如01:03:37
(1:03:37
几个小时没有前导 0)。所以我使用了格式字符串h:mm:ss
。但是,这给了我一个前导 0。如果我将 TimeSpan 转换为 DateTime 并再次执行相同的操作,h
格式化字符串将按预期工作。
一个示例控制台程序:
输出:
为什么 TimeSpan 和 DateTime 的行为不同?
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,因为我可以禁用它,但仍然可以看到混乱的格式化时间。
有没有更好/更清洁的方法来做到这一点?
c# - 时间跨度日怎么可能只持续 8 小时?
我以分钟为单位保存了一个持续时间,并希望输出“1 天 5 小时 30 分钟”。目前我将分钟添加到时间跨度并执行以下操作:
但现在我只对一天的工作时间感兴趣。因此,当 TimeSpan 的持续时间为 27 小时时,它不应创建输出“1 天 3 小时”。我想要“3天3小时”。
是否有一种简单的方法可以使用 Timespan 对象来做到这一点?是否可以更改 TimeSpan 的默认行为?还是我必须编写自己的自定义时间跨度类?
谢谢cpt.oneeye
php - SQL时间段查询
我需要从表中选择在 CURDATE() 和 6 周前之间添加了 date_add 的所有行。
请帮忙。
c# - 格式化 TimeSpan 大于 24 小时
假设我将一些秒转换为 TimeSpan 对象,如下所示:
如何将 TimeSpan 对象格式化为如下格式:
是否有内置函数或者我需要编写自定义函数?
c# - TimeSpan 的自定义字符串格式
我想以这种方式在 C# 中格式化 TimeSpan:
xxx 天 yyy 小时 zzz 分钟
条件:
额外的秒数应该被截断
天是我想要的最大单位。我希望 34 天显示为 34 天,而不是 1 个月 4 天等。
如果时间跨度小于一天,我不希望出现一天部分。同样,如果跨度小于 1 小时,我只想显示分钟部分。
有什么办法可以使用内置格式字符串来做到这一点,或者除了编写自己的函数之外别无他法?
编辑:目前为此使用我自己的功能。以分钟为单位的 TimeSpan 作为输入(TimeSpan.TotalMinutes)
:
powershell - 使用 PowerShell 时间跨度进行算术运算
PowerShell 时间跨度非常适合快速显示持续时间,例如:
但是,如果我$loopcount
在该时间范围内进行了处理迭代,我如何将持续时间除以$loopcount
得到每次迭代的平均持续时间?
c# - 在 TimeSpan 上使用 String.Format 以输出完整的秒数而不是毫秒
我想在一个字符串中显示两个日期之间经过的时间。
假设我有以下代码:
我的期望:
我得到什么:
有没有办法使用 String.Format 函数只返回整秒?
我还尝试使用以下方法删除小数位:
但这也不起作用,因为 elapsed.Miliseconds 返回 500 作为整数。
.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 个解决方案只会在运行时解决问题。如果方法定义很难传入无效数据(如果不是不可能的话),我会更喜欢它 - 然后在设计时会看到
也许我过度分析了,但必须有一种更简洁的方法来做到这一点
有没有人有首选的方法,如果有,为什么?
c# - 为什么我的 TimeSpan.Add() 不起作用?
必须有一个简单的答案:
列表中只有一个值,timeSheets
它是肯定的TimeSpan
(经当地检查验证)。