Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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_Time - Fatal编程技术网

将秒转换为时间段(PHP)

将秒转换为时间段(PHP),php,time,Php,Time,我报告了一个错误,用户从下拉列表中选择一个日期框,小时、天、月,然后输入一个自由文本数字 保存后,此值将转换为秒数 我需要显示当前未显示的字段。我如何计算出如何使其与他们输入的值相同?出于某种奇怪的原因,我们不存储下拉列表的值 有没有办法将其转换为该秒数内可用的最大时间块数,或者我应该只存储下拉字段,这是我可能要做的。转换不是一个选项,因为您不知道用户的意思。例如,当我输入数字“3”时,您无法确定我的意思是3天还是3个月 让我详细说明一下:如果我输入'3'并选择'days',以秒为单位的时间是:

我报告了一个错误,用户从下拉列表中选择一个日期框,
小时、天、月
,然后输入一个自由文本数字

保存后,此值将转换为秒数

我需要显示当前未显示的字段。我如何计算出如何使其与他们输入的值相同?出于某种奇怪的原因,我们不存储下拉列表的值


有没有办法将其转换为该秒数内可用的最大时间块数,或者我应该只存储下拉字段,这是我可能要做的。

转换不是一个选项,因为您不知道用户的意思。例如,当我输入数字“3”时,您无法确定我的意思是3天还是3个月

让我详细说明一下:如果我输入'3'并选择'days',以秒为单位的时间是:60*60*24*3=259200秒。显示时,您可以将其拆分,使输出再次为“3天”。但如果我输入'72'并选择'hours'呢?你不知道


只要存储用户的选择,您就可以了。

如果您希望将其拆分为依赖于日/月的数据块,那么在一个数据块中进行相当简单的数学操作就可以了

if($seconds > 2629743){
    // code for month 
}
elseif ($seconds > 86400) {
        // code for days
    }

我认为那是不对的。用户选择
,因此数据库中会存储259200或7776000。嘿,沃尔克:我添加了一些解释,请参见第二段。我同意,我将存储时间段。奇怪的是,它还没有被存储。几秒钟似乎不足以存储一个时间框架,我想你需要两个时间戳,或者一个时间戳和几秒钟。1个月的确切时间是多少?您是否使用静态转换,例如86400*30?或者它是strtotime(“+1个月”)-time()的结果。?还是@piddlor:这并不意味着它“与他们输入的值相同”。只是在问题的最后一部分询问“是否有办法将其转换为该秒数的最大可用时间段数”时提供一个备选答案