使用vbscript我可以使用命令cdbl(now)
从当前日期/时间检索double值。
Now = '09.05.2015 21:44:10'
cdbl(Now) = 42133,9056712963
我正在寻找一个使用php的等效解决方案,它会从当前日期/时间返回一个双倍值。
答案 0 :(得分:0)
cdbl以微软格式返回datetime。在逗号日期之前 - 自1900年1月1日以来的天数。逗号时间之后 - 24小时是1.所以如果你在Unix时代内使用日期(代码可能无效,我想让它更容易理解)
function cdbl($str) {
$datetime0 = new DateTime('1970-01-01');
$datetime = new DateTime($str);
// 25560 - days from 1 Jan 1900 to 1 Jan 1970
$cdbl = $datetime->diff($datetime0)->days + 25569;
// Remove time from string - it is the sane as 00:00
$str0 = preg_replace('/((T|\s+).+)$/','', $str);
// The number of seconds since the day start
$time = strtotime($str) - strtotime($str0);
// The number of seconds wittin a day
$timefullday = strtotime("$str0 + 1 day") - strtotime($str0);
$cdbl += $time / $timefullday;
return $cdbl;
}
echo cdbl('09.05.2015 21:44:10');
结果:
42133.905671296
如您所见,存在四舍五入的问题。如果在求和之前计算时间的打印结果,答案将与您的相同。我从来没有完成计算任务,所以我不能告诉你该怎么做。唯一的建议是转换为字符串:)
好吧,如果你选择在Unix日期之外工作,你应该写一些代码