将秒转换为时间段(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:这并不意味着它“与他们输入的值相同”。只是在问题的最后一部分询问“是否有办法将其转换为该秒数的最大可用时间段数”时提供一个备选答案