PHP Date在函数/非对象错误中创建From Format

时间:2012-10-17 09:40:39

标签: php date

我有以下代码产生此错误:致命错误:在第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”

非常感谢任何帮助!

杰夫

2 个答案:

答案 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

进行调试