Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从包含秒数的整数获取小时/天/周的乘数值_Php - Fatal编程技术网

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

Php 从包含秒数的整数获取小时/天/周的乘数值,php,Php,我在如下字段中存储总秒数: 倍增器x小时(以秒为单位)(60*60) 或 乘数x天(60*60*24)(以秒为单位) 或 倍增x周(60*60*24*7)(以秒为单位) 用户可以输入乘数(整数值)。小时、天和周是固定值,因此用户只能选择其中一个选项 我提供的API只允许将这个整数值存储为总秒数 检索此值时,如何确定他们输入的乘数值是多少,以及它是否在小时、天或周内 我目前正在用PHP开发这篇文章。任何帮助都将不胜感激。您说过乘数必须是一个整数-然后您可以检查周和日的可除性,看看输入的是否是整数

我在如下字段中存储总秒数:

倍增器x小时(以秒为单位)(60*60)

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

倍增x周(60*60*24*7)(以秒为单位)

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

我提供的API只允许将这个整数值存储为总秒数

检索此值时,如何确定他们输入的乘数值是多少,以及它是否在小时、天或周内


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

您说过乘数必须是一个整数-然后您可以检查周和日的可除性,看看输入的是否是整数

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


即使他们真的选择了14天这样的时间,也最好在几周内显示出来。

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

/**
 * 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);
像这样使用它:-

/**
 * 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小时


java和c与之有什么关系?使用
if(total\u seconds%seconds\u in\u week==0)
并将检查保存为整数。非常感谢sam和vascowhite!在等待回复的同时,我用javascript编写了它,最终写下了你们建议的内容!效果很好。谢谢,做得真棒,瓦斯科海特。它工作得很好!我只测试了几个边缘案例,但希望它能抓住一切。