致命错误:调用未定义的函数get_timezone_offset()?

Sim*_*sto -2 php

我在PHP页面上一直收到此错误.我认为错误是因为我的服务器上安装的PHP版本,但当我检查它时

 <?php
echo "Version is: " . phpversion();
?> 
Run Code Online (Sandbox Code Playgroud)

PHP版本是5.2.17.

我目前的代码是:

<form method="post" action="">
  <select name="timezone2" id="timezone2" class="timezone2">
    <option value="Pacific/Midway">(GMT-11:00) Midway Island, Samoa</option>
    <option value="America/Adak">(GMT-10:00) Hawaii-Aleutian</option>
    .. snip ..
</select>
  <select name="timezone1" id="timezone1" class="timezone1">
    <option value="Pacific/Midway">(GMT-11:00) Midway Island, Samoa</option>
    <option value="America/Adak">(GMT-10:00) Hawaii-Aleutian</option>
    .. snip ..
  </select>
<input type="submit" value="send"> </input>

</form>


<?php
if( isset($_POST['submit']))
{
    //be sure to validate and clean your variables
    $timezone1 = htmlentities($_POST['timezone1']);
    $timezone2 = htmlentities($_POST['timezone2']);

    //then you can use them in a PHP function. 
    function get_timezone_offset( $origin_tz, $remote_tz ) {
    $timezone1 = new DateTimeZone( $origin_tz );
    $timezone2 = new DateTimeZone( $remote_tz );

    $datetime1 = new DateTime("now", $timezone1);
    $datetime2 = new DateTime("now", $timezone2);

    $offset = $timezone1->getOffset($datetime1) - $timezone2->getOffset($datetime2);
    return $offset;
}
}

$offset = get_timezone_offset('datetime1', 'datetime2');

echo $offset/3600;
?>
Run Code Online (Sandbox Code Playgroud)

我不知道我在做错了什么!

有人可以帮我解决这个问题吗?

Did*_*tus 5

get_timezone_offset() 仅在$_POST['submit']设置时才定义函数.但你get_timezone_offset()每次都在打电话.如果$_POST['submit']没有设置.