如果我有一个随机的Unix时间戳,怎么将它舍入到今天午夜或用户选择的午夜。这是因为我想在某个特定日期的午夜之后添加小时和分钟。
例如,如果时间戳是
例如,如果时间戳是
1324189035
,那么如何移除小时、分钟和秒数,使时间戳变成当天的午夜。1324189035
,那么如何移除小时、分钟和秒数,使时间戳变成当天的午夜。echo date('d-m-Y H:i:s', strtotime('today', 1324189035));
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
echo strtotime("0:00 +0000", 1443441600);
打印出 1443398400
。 - Rag简单易用
strtotime('today midnight');
strtotime('now + 1 year + 1 day midnight')
- Fabien Snauwaert只要做
date('d-m-Y',strtotime('today'));
容易!
<?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
午夜差异:1575417600
午夜格式化:2019-12-04 00:00:00
function getMidnight ($timestamp) { return $timestamp - ($timestamp % 86400); }
http://sandbox.onlinephpfunctions.com/code/1d85c935e71fcf011284ae33658e0c68dd8d8c28
只需要这样:
date -d $(date +%F) +%s
$roundedStamp = $time - ($time % 86400);
这样,它很聪明但不完美。它会根据情况四舍五入,所以不起作用。这个方法就可以解决这个问题 :) - Yes Barrystrtotime
以获取午夜的时间戳,该时间戳应包裹整个被回显的代码。 - Solomon Clossonstrtotime('today', 1324189035)
已经存在并且可以实现这个功能,date
只是为了演示它实际上是午夜。 - zerkmsdate
命令的输出有点让我困惑。 - Solomon Clossonround(strtotime('today', time()) / 86400))
。 我的用例是找到自纪元以来的奇数天以交替执行cron程序round($daysFromUnixEpoch) % 2 === 0
。 - Scott Anderson