我有一张表格,显示了自从提出工作以来的时间。
// These are unix epoch times...
$raised = 1360947684;
$now = 1361192598;
$difference = 244914;
$difference
需要排除工作时间以外的任何时间(例如,9-5 和周末)。
我怎么能解决这个问题?
你必须做的事情是数字3。
这样你就完成了。
找到一个附加的小类,它可以做这些事情。请注意,没有错误处理、时区设置、夏令时……
输入:
输出:
可调常数:
非常糟糕的主意,但我别无选择,因为我在 php 5.2
<?php
date_default_timezone_set('Asia/Seoul');
$start = 1611564957;
$end = 1611670000;
$res = 0;
for($i = $start; $i<$end; $i++){
$h = date("H", $i);
if($h >= 9 && $h < 18){
//echo date("Y-m-d H:i:s", $i) . "<br>";
$res = $res + 1;
}
}
echo $res;
使用DateTime
.
为此使用 UNIX 时间有点荒谬,您必须从字面上重新制作DateTime
.
查找相关格式,您可以在其中指定当天的小时,例如
$date = new DateTime($raised);
$business_start = new DateTime("09:00"); // 9am today
$business_end = new DateTime("17:00"); // 5pm today
剩下的就交给你了。
哦,而不是开始/结束,您可能可以使用DateInterval
( P8H
" period 8 hours" )
直接使用时间戳的问题是您将上下文分配给秒计数器。您必须从要排除的时间开始向后工作,并事先计算出它们的时间戳。您可能想尝试重新设计您何时提出工作的存储。也许为它设置一个到期时间?