- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将秒数转换为日期。这是我目前拥有的(在 php 中):
function secondsToTime($inputSeconds) {
$secondsInAMinute = 60;
$secondsInAnHour = 60 * $secondsInAMinute;
$secondsInADay = 24 * $secondsInAnHour;
$secondsInAMonth = 30 * $secondsInADay;
$secondsInAYear = 12 * $secondsInAMonth;
$years = floor($inputSeconds / $secondsInAYear);
$monthSeconds = $inputSeconds % $secondsInAYear;
$months = floor($monthSeconds / $secondsInAMonth);
$daySeconds = $monthSeconds % $secondsInAMonth;
$days = floor($daySeconds / $secondsInADay);
$hourSeconds = $daySeconds % $secondsInADay;
$hours = floor($hourSeconds / $secondsInAnHour);
$minuteSeconds = $hourSeconds % $secondsInAnHour;
$minutes = floor($minuteSeconds / $secondsInAMinute);
$remainingSeconds = $minuteSeconds % $secondsInAMinute;
$seconds = ceil($remainingSeconds);
$obj = array(
'years' => (int) $years,
'months' => (int) $months,
'days' => (int) $days,
'hours' => (int) $hours,
'minutes' => (int) $minutes,
'seconds' => (int) $seconds
);
return $obj;
}
但这不够准确,因为它没有考虑到月份的不同长度......是否有已知的算法或其他东西可以正确地做到这一点??
提前致谢
编辑:
对不起,英语不是我的语言......我说我需要转换为日期,但我实际上做的是两个日期之间的差异,我在几秒钟内得到结果,我需要年、月、日、小时、分钟和秒的数量
最佳答案
我想这就是您要找的:
适用于 PHP >= 5.3.0
function secondsToTime($inputSeconds) {
$then = new DateTime(date('Y-m-d H:i:s', $inputSeconds));
$now = new DateTime(date('Y-m-d H:i:s', time()));
$diff = $then->diff($now);
return array('years' => $diff->y, 'months' => $diff->m, 'days' => $diff->d, 'hours' => $diff->h, 'minutes' => $diff->i, 'seconds' => $diff->s);
}
适用于 PHP >= 5.2.0
function secondsToTime($inputSeconds) {
$then = new DateTime(date('Y-m-d H:i:s', $inputSeconds));
$now = new DateTime(date('Y-m-d H:i:s', time()));
$years_then = $then->format('Y');
$years_now = $now->format('Y');
$years = $years_now - $years_then;
$months_then = $then->format('m');
$months_now = $now->format('m');
$months = $months_now - $months_then;
$days_then = $then->format('d');
$days_now = $now->format('d');
$days = $days_now - $days_then;
$hours_then = $then->format('H');
$hours_now = $now->format('H');
$hours = $hours_now - $hours_then;
$minutes_then = $then->format('i');
$minutes_now = $now->format('i');
$minutes = $minutes_now - $minutes_then;
$seconds_then = $then->format('s');
$seconds_now = $now->format('s');
$seconds = $seconds_now - $seconds_then;
if ($seconds < 0) {
$minutes -= 1;
$seconds += 60;
}
if ($minutes < 0) {
$hours -= 1;
$minutes += 60;
}
if ($hours < 0) {
$days -= 1;
$hours += 24;
}
$months_last = $months_now - 1;
if ($months_now == 1) {
$years_now -= 1;
$months_last = 12;
}
// Thank you, second grade. ;)
if ($months_last == 9 || $months_last == 4 || $months_last == 6 || $months_last == 11) {
$days_last_month = 30;
}
else if ($months_last == 2) {
if (($years_now % 4) == 0) {
$days_last_month = 29;
}
else {
$days_last_month = 28;
}
}
else {
$days_last_month = 31;
}
if ($days < 0) {
$months -= 1;
$days += $days_last_month;
}
if ($months < 0) {
$years -= 1;
$months += 12;
}
return array('years' => $years, 'months' => $months, 'days' => $days, 'hours' => $hours, 'minutes' => $minutes, 'seconds' => $seconds);
}
关于php - 精确秒到 "day/month/year - minutes : hours : seconds"转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19728913/
我正在尝试编写一个简单的控制台应用程序,该应用程序将从键盘接受一个字符串,该字符串以 HH:MM 形式表示小时和分钟,然后必须将该字符串放入两个整数中,分别表示小时和分钟,然后再显示总分钟数,因此 0
在 Javascript 中,我有 4 个带有值的变量。 以下是示例: var start_hour = 1; var start_minute = 00; var end_hour = 6; var
例如我有 525 分钟,如果我们将它除以 60,结果将为 8.75 但是 1 小时只有 60 分钟而不是 75 如何从总分钟数中计算出准确的小时:分钟数? 最佳答案 $hours = intval($
我需要每 30 分钟(整点和整点后 30 分钟)重新加载页面内容。我正在考虑使用 JavaScript,并且尝试了下面的代码,但它进入了无限循环。我不知道如何更改它以避免循环。 meta 标记不会有帮
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我正在寻找一个字符串 (mysql),它可以正确地计算总时间的几个小时。分钟。我找不到任何合适的东西。 例子: id| time_spent| 1 | 10.15 | 2 | 10.15
我对以下命令的理解是它查找在最后 {x} 分钟内修改过的文件。 如果我从 mmin 中排除 - 是什么意思,它应该返回什么? 命令 find . -maxdepth 1 -mmin -20 最佳答案
我有两个 Calendar 变量,分别命名为 calendar1 和 calendar2 其中存储了一些日历值。 我想比较这些变量的 MINUTE 值。 我找到了两种方法,但我想知道有什么区别以及哪一
例如,我想解析下面的字符串: Tue Sep 28 18:02:24 GMT+08:00 2010 我使用 SimpleDateFormat 的模式: new SimpleDateFormat("EE
我正在 Mac OS 终端上创建 cron,代码如下: home.cron 的内容: * * * * * /users/username/desktop/forTrump/script.sh 然后我这
我在 golang 1.9.2 中遇到了一个非常奇怪的错误:当我尝试编写 int64(1.1*float64(time.Minute)) 时显示错误。编译器说常量被截断为整数。 但是当我将 1.1 更
我正在使用从上午 9:50 开始的日内数据,并希望将其转换为 20 分钟的时间间隔,因此第一个时间段为 09:50 至 10:09:59,第二个时间段为 10: 10 到 10:29:59 等。但是
我的用户选择一个日期,我将其存储在纪元秒(或必要时以毫秒为单位)。 我的用户分别选择一天中的时间和时区。 如何使用这些新信息调整我的纪元时间。我觉得我应该能够根据小时/分钟添加 X 毫秒,然后根据时区
我有一个这样的表: id date_time 1 2/11/2013 7:05 2 2/11/2013 7:00 3 2/12/2013 7:00 4 2/14/2013 7:00
我这里有一个脚本(不是我自己的),它计算我的卫星接收器中电影的长度。它以分:秒为单位显示长度 我想在 小时:分钟 我必须做出哪些改变? 这是有关脚本的和平: if len > 0: len =
我有这样的查询: select t.Paydate,t.DelDate,DATEDIFF(MI, t.Paydate,t.DelDate) as Datdiffernce from Transacti
我有以下代码: insert into @Precalculo (descripcion, Valor) exec dbo.GetRankingTotalizador @Fecha,
我目前正在研究有关 super 马拉松的数据。有许多检查点带有每个运行者在该检查点上的时间的时间戳,但是当我试图研究分段时间时,我需要计算半场时间,这本身不是问题,但我遇到了格式问题。 我抓取的数据如
使用 cron,如果我想每 5 分钟运行一次命令,它将是: */5 * * * * command 但是如果我想专门设置一个分钟列表怎么办? 就像 5 点、18 分钟和 15 分钟一样?我猜这个: 5
很简单的问题。我有一个使用倒计时的 NodeJS 应用程序 ( https://www.npmjs.com/package/countdown )。倒计时本身有效。 但是,我不知道如何设置为8分钟?
我是一名优秀的程序员,十分优秀!