从包含秒的整数中获取小时/天/周的乘数值

时间:2012-08-14 20:50:57

标签: php

我在一个字段中存储总秒数,如下所示:

倍数x小时(秒)(60 * 60)

乘数x天数秒(60 * 60 * 24)

乘数x周以秒为单位(60 * 60 * 24 * 7)

用户可以输入乘数(整数值)。小时,日和周是固定值,因此用户只能选择其中一个选项。

我提供的API仅允许将此整数值存储为总秒数。

检索此值时,如何确定他们输入的乘数值是多少?它是否属于小时,天或周?

我目前正在用PHP开发这篇文章。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

你说乘数必须是一个整数 - 然后你可以检查一周和一天的可分性,看看是否是输入的。

如果(total_seconds / seconds_in_week)是一个整数,他们可能选择了“周” 如果(total_seconds / seconds_in_day)是一个整数,他们可能选择“day”
否则,他们肯定会选择秒。

即使他们确实选择了14天之类的东西,但无论如何,最好还是在几周之内显示出来。

答案 1 :(得分:0)

也许我可以建议这样的功能: -

/**
 * Given number of seconds will calculate if likely
 * multiplier is weeks, days, hours or seconds
 *
 * @param int $period
 * @return string representing possible chosen multiplier
 */
function getMultiplier($period)
{
    $hour = 60*60;
    $day = $hour * 24;
    $week = $day * 7;

    if($period >= $week && $period % $week == 0){
        return $period/$week . " weeks";
    }
    if($period >= $day && $period % $day == 0){
        return $period/$day . " days";
    }
    if($period >= $hour && $period % $hour == 0){
        return $period/$hour . " hours";
    }
    return "$period seconds";
}

像这样使用: -

echo getMultiplier(60 * 60 * 23);

将输出

  

23小时