问题标签 [dateinterval]

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 投票
2 回答
1743 浏览

php - 将 DateTime 间隔拆分为单天

我有一个 PHP 脚本,它从数据库中接收一组带有开始/结束日期时间的事件,它们代表工作时间。

现在我想计算每天工作了多少。对于第一行,我想要这样的输出:

我已经看到了一些关于 DatePeriod 和 DateInterval 的东西,但这些都没有考虑到时间。

谢谢你的帮助。

0 投票
3 回答
210 浏览

php - 如何从分钟获得 H:i:s?

我有一个15 min需要从中获取的价值H:i:s。试过了date('H:i:s', strtotime('15 min')),但它回来了15:23:47,我需要00:15:00

0 投票
1 回答
126 浏览

php - 无法在 PHP 中为克隆的 dateinterval 对象设置属性

为什么这不起作用?

尝试运行此程序时,我在浏览器中收到“连接已重置”。

0 投票
1 回答
2922 浏览

php - PHP & XML (PT) 时间格式

我正在编写一个 PHP 脚本来解析从我们公司使用的软件生成的 XML 文件。时间格式就是这样格式化的;我想知道他们是否是解析时间的更简单方法。

我有一个脚本来解析它,但我觉得它可能太长而且比它需要的更复杂:

提前感谢您的任何回复!

0 投票
2 回答
1776 浏览

php - 多种格式的 Symfony 日期间隔

我有一个名为 worker 的实体的日期间隔,有一段时间,请参阅下一个函数:

此处存储在数据库中的唯一值是$this->getBirthDay(),然后getRetireYear生成工人的退休年份(birthDay + 60 年)。
getTimeToRetirement给出退休某人的剩余时间,并formatTimeInterval($,$)用于格式化日期间隔。

现在我需要能够以不同的格式使用此 dateInterval,例如,有时我只需要将年份作为整数与视图中的其他值进行比较,因此我需要将这一年作为单个值在视图上访问。

我已经尝试了一些事情,但我不知道正确的方法,所以我没有得到这个问题的更好结论。

有时我还需要其他任务的月份和日期,而不仅仅是年份,这些值应该可以在视图上访问,因为在控制器中我只是搜索对象的 ArrayColletion 并将其传递给视图,否则我必须去up 和 down 数组集合。

有关该问题的更多信息,您可以阅读此线程

0 投票
2 回答
3748 浏览

php - PHP DateInterval 每 x 周选择星期几

我编写了一些用于输入重复事件的代码。最棘手的部分是用户可以创建一个事件并让它在每周选定的日子重复 x 周。

例如,用户可以选择 Mon,Wed,Fri 并让它每 3 周重复一次。

如果每周都很容易做到 -我可以做这样的事情:

对于上述代码,我将如何修改它以每 3 周包含一次周一/周三/周五?有没有更好的方法来实现这一点而无需每天循环?

我想我可以使用 $date->format('w'); 这会给我一年中的数字星期。然后我可以有一个计数器并重置它。

0 投票
1 回答
430 浏览

php - PHP Mysql Calculating total flight hours per day from just two datetimes across day

This is for PHP and Mysql
These are airplane takeoff and landing datetime's for two planes SFO and BWI. I'm trying to calculate how many hours per day each plane is in the air. Flight duration is easy just DATETIMEDIFF but hours per day in the air is proving difficult.

I figure I can break it down into 2 steps:
1. For any take off and landing pair in the same day just get the datetimediff and if datetime_takeoff and datetime_landing are not in the same day then insert the total amount of hours from mindnight. I can run this as it occurs.



2. Run a check every day at midnight and check if the datetime_landing is NULL and IF the datetime_takeoff is TODAY, THEN calculate the hours to midnight. IF datetime_takeoff is not today then insert a value of 24hrs. I figure this will cover timedate_landings that are not on the same day/NULL

Does this logic make sense where all the data will be processed?

0 投票
1 回答
87 浏览

php - php DateTime diff 方法行为

我必须找到到期日期之前的日子。我尝试使用 DateTime 类的 diff 方法。

我的问题是,如果 dataexp 在过去 1 天,则 diff 的结果是 1 而不是 -1

我可以用什么方法来得到我想要的?(-1 天)?谢谢

0 投票
1 回答
1265 浏览

php - 计算 DateInterval 的平均值

我正在寻找一种方法来计算DateInterval事件的平均总持续时间(形式)。我有DateInterval对象的持续时间,但我需要将它们相加并计算它们的平均值。到目前为止,我看到的解决方案是通过将它们转换为秒来将不同的数量相加,但我需要以表格形式呈现最终DateTime形式。

如何将平均持续时间表示为一个DateTime值?

编辑:

按如下方式设置持续时间(其中$busyTime$freeTime是 DateTime 对象):

然后我试图总结持续时间,如下所示:

$totalDuration += $timetable[$siteID]->duration;

对于这个,我得到 129 的总持续时间和我正在计算的项目数,这对我来说意味着它们都是 1 的值。如果是这样的话,这很好(可能每个 1 秒?)但我希望能够处理的不仅仅是几秒钟。我不确定这是否是这里发生的事情。

我也尝试了以下方法,但我没想到它会起作用:

$totalDuration += $timetable[$siteID]->duration->format("Y-m-d H:i:s");

对于最后一个,我得到 0。

0 投票
1 回答
1990 浏览

php - DatePeriod 与 DateInterval P1Y 去年未生成

我有这样的代码:

变量

var_dump() 输出函数如下:


执行后代码存储在变量self::$data['zone']中是这样的:


转换为日期:
01.12.2012 - 31.12.2012
01.01.2013 - 13.01.2014
现在,如果它不会生成此日期,请纠正我,在这种情况下错误在哪里:
01.12.2012 - 31.12.2012
01.01.2013 - 31.12 .2013
01.01.2014 - 13.01.2014

附加信息

谢谢你的回答。

编辑

@Glavić:感谢您提供的信息,现在我完全理解了

令我震惊的是,如果开始和结束年份相同,并且我在那一年只改变了几个月或几天,它有时会带来正确的结果,有时会缺少最后一年。

因此,让我进一步分解这个问题。

为了澄清,我将使用不同的输入变量来更好地理解。

变量

请注意,self::$data['to']差值超过 3 年只是缺少一秒钟。

代码

输出

在这种情况下,在类中创建了三个日期DatePeriod
2012-12-01 00:00:00
2013-12-01 00:00:00
2014-12-01 00:00:00
但最后一个日期被删除,因此类只返回两个DateTime对象。

现在我们向变量添加一秒self::$data['to']并再次运行代码。

多变的

输出

在这种情况下,在类内创建了四个日期DatePeriod
2012-12-01 00:00:00
2013-12-01 00:00:00
2014-12-01 00:00:00
2014-12-01 00:00: 01
最后日期再次被删除。

数学表达

{ x | a ≤ x < b }

a = 开始日期
b = 结束日期
初始化x等于a
每个期间的创建然后是
x = x + 期间(在我的情况下 P1Y 属于 {365,366})