我有以下代码产生此错误:致命错误:在第58行的C:\ wamp \ www \ grid2.php中的非对象上调用成员函数setTimeZone()
我正在尝试设置此函数以接收如下的日期字符串,应用时间偏移,然后以函数调用中设置的格式将其输出...但没有运气。
<?php
if (!session_id()) session_start();
$_SESSION["timeoffset"] = "Europe/Amsterdam";
function formatDate($date, $format){
// use the the appropriate timezone for your stamp
$timestamp = DateTime::createFromFormat($format, $date, new DateTimeZone('UTC'));
// set it to whatever you want to convert it
$timestamp->setTimeZone(new DateTimeZone($_SESSION["timeoffset"]));
echo $timestamp->format($format);
}
formatDate('2012-10-14T21:15', 'Y-m-d\TH:i');
?>
我也想弄清楚如何以一定数量的额外分钟数返回字符串。
所以字符串“2012-10-14T21:15”将增加5分钟=“2012-10-14T21:20”
非常感谢任何帮助!
杰夫
答案 0 :(得分:0)
DateTime::createFromFormat将在失败时返回false。这意味着:
DateTime::createFromFormat($format, $date, new DateTimeZone('UTC'));
失败并且$ timestamp为false(var_dump($ timestamp)将显示)。如果不知道你传递的是函数formatDate的参数,我认为没有人能够弄清楚你做错了什么。
答案 1 :(得分:0)
使用此
$timestamp->setTimeZone(new DateTimeZone("Europe/Amsterdam"));
我认为sessions
数组没有返回字符串Europe/Amsterdam
。
进行调试