如果我有一个随机的unix时间戳,我怎样才能将其四舍五入到今天的午夜或用户选择的午夜。这样做的原因是我希望在某一天的午夜之后添加小时和分钟。
例如,如果时间戳为1324189035
,那么如何删除将时间戳设置为当天午夜的小时,分钟和秒。
答案 0 :(得分:19)
echo date('d-m-Y H:i:s', strtotime('today', 1324189035));
答案 1 :(得分:16)
由于你如何使用它,我根本不计算午夜:简单地将你添加到时间戳的内容转换成24小时的时间然后使用strtotime要容易得多:
echo strtotime("0:00",1324189035); // 1324184400
echo strtotime("17:50",1324189035); // 1324248600
如果您希望人类可读,请使用date
和m/d/Y H:i:s
:
echo date('m/d/Y H:i:s', strtotime('17:50',1324189035)); // 12/18/2011 17:50:00
答案 2 :(得分:6)
简单使用
strtotime('today midnight');
答案 3 :(得分:1)
就做
date('d-m-Y',strtotime('today'));
容易!
答案 4 :(得分:0)
一个简单的解决方案是使用 modulo 表达式从一整天的时间戳中删除超出的秒数。
<?php
date_default_timezone_set('UTC');
$timestamp = time();
echo "timestamp : " . $timestamp . PHP_EOL;
echo "timestamp formatted : " . date('Y-m-d H:i:s', $timestamp) . PHP_EOL;
$diff = $timestamp % (60 * 60 * 24);
echo "diff : " . $diff . PHP_EOL;
$midnight = $timestamp - $diff;
echo "midnight : " . $midnight . PHP_EOL;
echo "midnight formatted : " . date('Y-m-d H:i:s', $midnight) . PHP_EOL;
这将输出以下结果。
时间戳:1575451074
时间戳格式化为:2019-12-04 09:17:54
diff午夜:1575417600
午夜格式化:2019-12-04 00:00:00
这是一个班轮函数,可让您从任何时间戳记中获取午夜时间。
function getMidnight ($timestamp) { return $timestamp - ($timestamp % 86400); }
http://sandbox.onlinephpfunctions.com/code/1d85c935e71fcf011284ae33658e0c68dd8d8c28
答案 5 :(得分:0)
怎么样:
date -d $(date +%F) +%s