2 回答
TA贡献1777条经验 获得超10个赞
首先,通过删除属性来简化选择选项语法 - 这只会使您的标记更难一目了然地理解,并且对于我稍后将演示的日期时间计算来说,这将是不必要的。我还认为更简单的字段名称将是有益的。value
<select name="subtractHours" class="FormTime">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<select name="subtractMinutes" class="FormTime">
<option>0</option>
<option>15</option>
<option>30</option>
<option>45</option>
</select>
然后,使用 PHP 的 datetime 类来:
从日期/时间值初始化日期时间对象
减去提交的时间量
将日期时间字符串调整为所需格式。
代码:(演示)
$fromDate = '26-1-2020';
$fromHours = '09';
$fromMins = '00';
$subtractHours = '1';
$subtractMins = '0';
$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat('d-m-Y H:i:s', "{$fromDate} {$fromHours}:{$fromMins}:00");
$date->sub(new DateInterval("PT{$subtractHours}H{$subtractMins}M"));
echo $date->format('Y-m-d H:i');
输出:
2020-01-26 08:00
为了稳定性/一致性,我将 as 秒添加到对象中,以防您想要将完整的日期时间戳插入到数据库中(这需要格式)。:00Y-m-d H:i:s
当时间减法导致损失一天时,上述过程也将同样有效。(演示)
$fromDate = '25-1-2020';
$fromHours = '01';
$fromMins = '30';
$subtractHours = '6'; // don't bother with 3600 precalculation
$subtractMins = '45';
// Output: 2020-01-24 18:45
TA贡献1772条经验 获得超8个赞
我完全重写了我的代码,现在我已使用以下代码解决了该问题:
$DisplayTime = $FromTimeStamp - $FromDisplayHours - $FromDisplayMins;
echo "DISPLAYTIME 1 ".$DisplayTime."<br/>";
$DisplayDateTime = date("Y-m-d H:i", $DisplayTime);
- 2 回答
- 0 关注
- 94 浏览
添加回答
举报