gpt4 book ai didi

php - 将工作时间添加到时间戳

转载 作者:行者123 更新时间:2023-12-01 22:45:19 25 4
gpt4 key购买 nike

我需要将工作时间添加到时间戳中。工作时间是早上八点到下午六点。假设我们有下午 2 点,我必须增加 6 个小时。结果应该是上午 10 点……有什么猜测吗?

谢谢。

最佳答案

试试这个坏男孩。

您可以指定是否将周末作为工作日等。不考虑假期。

<?php

function addWorkingHours($timestamp, $hoursToAdd, $skipWeekends = false)
{
// Set constants
$dayStart = 8;
$dayEnd = 16;

// For every hour to add
for($i = 0; $i < $hoursToAdd; $i++)
{
// Add the hour
$timestamp += 3600;

// If the time is between 1800 and 0800
if ((date('G', $timestamp) >= $dayEnd && date('i', $timestamp) >= 0 && date('s', $timestamp) > 0) || (date('G', $timestamp) < $dayStart))
{
// If on an evening
if (date('G', $timestamp) >= $dayEnd)
{
// Skip to following morning at 08XX
$timestamp += 3600 * ((24 - date('G', $timestamp)) + $dayStart);
}
// If on a morning
else
{
// Skip forward to 08XX
$timestamp += 3600 * ($dayStart - date('G', $timestamp));
}
}

// If the time is on a weekend
if ($skipWeekends && (date('N', $timestamp) == 6 || date('N', $timestamp) == 7))
{
// Skip to Monday
$timestamp += 3600 * (24 * (8 - date('N', $timestamp)));
}
}

// Return
return $timestamp;
}

// Usage
$timestamp = time();
$timestamp = addWorkingHours($timestamp, 6);

关于php - 将工作时间添加到时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com