我制作了一些有效的代码,但效果似乎非常低效。我在画布上绘制圆圈图,以显示工作日期间发生的事件。为此,我找到当天发生的秒数,然后将其转换为显示的分钟数。
我的问题是为什么我必须去strtotime(date('...',strtotime(time)))
并且两次打电话给strtotime?
当我像strtotime(date('Y-m-d',time)
那样得到它时,我会得到负值。
<?php
$time_concerned = '2014-10-31 02:00:00';
$start_day_temp = strtotime(date('Y-m-d',strtotime($time_concerned)));
$end_day_temp = strtotime(date('Y-m-d H:i',strtotime($time_concerned)));
$num_seconds = $end_day_temp - $start_day_temp;
//divide by 60 to get minutes. divide in half to make fit on 720 scale.
$num_conv_minutes = (($num_seconds/60)/2);
echo ' ctx.fillStyle = "#00FF00";';
echo ' ctx.beginPath();';
echo ' ctx.arc('.$num_conv_minutes.'+ x_inbound,y_truck_arrivals,5,0,2*Math.PI);';
echo ' ctx.fill();';
echo ' ctx.stroke();';
?>
答案 0 :(得分:0)
$time_concerned = '2014-10-31 02:00:00';
echo strtotime(date('Y-m-d',strtotime($time_concerned)));
echo "\r\n";
echo strtotime($time_concerned);
试试这个。 Fiddle
这些几乎是相同的东西。他们不同的唯一原因是因为当你将字符串转换为你正在丢弃第二分钟和小时的日期时,所以PHP将它放到午夜而你丢失的部分告诉你在凌晨2点做了所有这些。
这在您第一次使用时非常有用,因为您需要获取午夜的时间戳以从其他时间戳中减去。然而,第二次它只是多余的。
所以这就是你如何做到的..
$time_concerned = '2014-10-31 02:00:00';
$start_day_temp = strtotime(date('Y-m-d',strtotime($time_concerned)));
$end_day_temp = strtotime($time_concerned);