unix时间戳到午夜

时间:2011-12-18 06:30:09

标签: php unix-timestamp

如果我有一个随机的unix时间戳,我怎样才能将其四舍五入到今天的午夜或用户选择的午夜。这样做的原因是我希望在某一天的午夜之后添加小时和分钟。

例如,如果时间戳为1324189035,那么如何删除将时间戳设置为当天午夜的小时,分​​钟和秒。

6 个答案:

答案 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

如果您希望人类可读,请使用datem/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

相关问题