如何使用strtotime和date函数正确地将小数点时间转换为时间?

时间:2013-12-30 09:05:39

标签: php date strtotime

我正在尝试将1.3转换为1:30,但是当我使用带有日期功能的strtotime时,1.3变为1.03! 什么是解决方案?

这就是我正在使用的并给我意想不到的结果:

<?php $time_from = 1.3; ?>
<?= date('h:i A', strtotime($time_from)); ?>

print_r或$ opening_hours_array:

  

阵列(       [sunday_from] =&gt; 24.45       [sunday_to] =&gt; 1.3       [monday_from] =&gt; 2       [monday_to] =&gt; 2.15       [tuesday_from] =&gt; 3       [tuesday_to] =&gt; 3.15       [wednesday_from] =&gt; 4       [wednesday_to] =&gt; 4.15       [thursday_from] =&gt;五       [thursday_to] =&gt; 5.15       [friday_from] =&gt; 6       [friday_to] =&gt; 6.15       [saturday_from] =&gt; 7       [saturday_to] =&gt; 1)

我想要做的就是向我们展示我们的开放:

 <?php
$days_of_week = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
            for ($index = 0; $index < count($days_of_week); $index++) {
                $pos = strpos($opening_hours_array[strtolower($days_of_week[$index]) . '_from'], '.');
                if ($pos === false) {
                    $time_from = $opening_hours_array[strtolower($days_of_week[$index]) . '_from'].'.00';
                }else{
                    $time_from = $opening_hours_array[strtolower($days_of_week[$index]) . '_from'];
                }
                $pos = strpos($opening_hours_array[strtolower($days_of_week[$index]) . '_to'], '.');
                if ($pos === false) {
                    $time_to = $opening_hours_array[strtolower($days_of_week[$index]) . '_to'].'.00';
                }else{
                    $time_to = $opening_hours_array[strtolower($days_of_week[$index]) . '_to'];
                }
}
?>

2 个答案:

答案 0 :(得分:1)

正如@Goikiu所建议的那样,下面的代码可以解决这个问题

$time_from = 1.3;
$time_from = (strlen($time_from)==3)?$time_from.'0':$time_from;
echo date('h:i A', strtotime($time_from));

But there are other situations like 

$time_from = 1 ; 

The code needs to check for those as well.

答案 1 :(得分:0)

解决方案是:

$pos = strpos($opening_hours_array[strtolower($days_of_week[$index]) . '_from'], '.');
                if ($pos === false) {
                    $time_from = $opening_hours_array[strtolower($days_of_week[$index]) . '_from'].'.00';
                }else{
                    $time_from = $opening_hours_array[strtolower($days_of_week[$index]) . '_from'];
                    $time_from = (strlen($time_from)==3)?$time_from.'0':$time_from;
                }
                $pos = strpos($opening_hours_array[strtolower($days_of_week[$index]) . '_to'], '.');
                if ($pos === false) {
                    $time_to = $opening_hours_array[strtolower($days_of_week[$index]) . '_to'].'.00';
                }else{
                    $time_to = $opening_hours_array[strtolower($days_of_week[$index]) . '_to'];
                    $time_to = (strlen($time_to)==3)?$time_to.'0':$time_to;
                }