PHP 中的 localhost 和 webhost 输出不同

localhost and webhost not the same output in PHP

抱歉,我是 PHP 的初学者,我想寻求帮助,为什么我在本地主机上完善了我想要的过程,但是当我将它上传到我们的虚拟主机时,它与过程的输出不同, 日期相同。

我来自菲律宾 (GMT+8)。

我在流程中输入的示例: 两个日期输入中的今天日期,因此状态将为新 - 新鲜 - 活动 但是当我在 webhost 端输入时,状态将是 DORMANT、WINBACK、INACTIVE。

截图:
Localhost(这是完美的过程):

Webhost 视图(不正确):

编辑:我添加的香港时区在 webhost 中仍然有问题 这是我的代码:

<?php

date_default_timezone_set('Hongkong');
if(isset($_POST['submit']))
{
    $dateRegistration = mysql_real_escape_string($_POST['dateRegistration']);
    $dateStarted = mysql_real_escape_string($_POST['dateStarted']);
    $dateExpiration = mysql_real_escape_string($_POST['dateExpiration']);
    $accType = mysql_real_escape_string($_POST['accType']);
    $subsType = mysql_real_escape_string($_POST['subsType']);
    $status = mysql_real_escape_string($_POST['status']);

    //declartion
    $accType = "NEW";
    $subsType = "FRESH";
    $status = "ACTIVE";
    $color = "<th style=\"color: #cccc00;\">&nbsp;&nbsp;&nbsp;";
    #7f7f00

    //Equation 
    $dateExpiration = date('Y/m/d', strtotime($dateStarted. '+ 30 days'));

    //$dateRegExisting = date('Y/m/d', strtotime($dateRegistration. '+30 days'));


    if (strtotime($dateRegistration)<strtotime('-30 days')) {
        $accType = "EXISTING";
        $subsType = "RENEWAL";
        $color = "<th style=\"color: #7f7f00;\">&nbsp;&nbsp;&nbsp;";

    } 



    if (strtotime($dateStarted)<strtotime('-30 days')) {
        $subsType = "FOR RENEWAL";
        $accType = "EXISTING";
        $status = "INACTIVE";
        $color = "<th style=\"color: red;\">&nbsp;&nbsp;&nbsp;";
    }


      if (strtotime($dateStarted)<strtotime('-90 days')) {
        $accType = "DORMANT";
        $subsType = "FOR WINBACK";
        $status = "INACTIVE";
        $color = "<th style=\"color: red;\">&nbsp;&nbsp;&nbsp;";

    }


}


  $date1 = date('Y/m/d');

  echo "<br/>";
  echo "<br/>";
  echo "Today is: ".$date1;


  ?>


  <html>

  <head>

  <title>Add New Subscriber | Customer Information System</title>
  <script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
  <!-- Bootstrap core CSS -->

  <title>Title goes here</title>


 <script src="http://cdn.jsdelivr.net/webshim/1.12.4/extras/modernizr-custom.js"></script>
 <script src="http://cdn.jsdelivr.net/webshim/1.12.4/polyfiller.js">   </script>
<script>

webshims.setOptions('waitReady', false);
webshims.setOptions('forms-ext', {types: 'date'});
webshims.polyfill('forms forms-ext');

</script>

<style>
table, th, td {
border: 1px solid black;
}

#expiration {

color: red;
 }

</style>
</head>

<body>


<form action="" method="POST">

<br/>
<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label><strong>Date of Registration:</strong></label>
<input type="date" id="date" name="dateRegistration" placeholder="Date of Reg">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label><strong>Start of Subscription:</strong></label>
<input type="date" id="date" name="dateStarted" placeholder="Start ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input type="hidden" id="expiration" name="dateExpiration" placeholder="Expiration" ></font>
<br/>
<br/>
<input type="submit" name="submit" value="Submit" style="margin-left: 25em;">
<br/>
<br/>
<br/>
<br/>
<table style="margin-left: 7em;">

    <tr>
        <th>&nbsp;&nbsp;Date of Registration&nbsp;&nbsp;</th>
        <th>&nbsp;Start of Subscription&nbsp;&nbsp;&nbsp;</th>
        <th>&nbsp;&nbsp;Expiration&nbsp;&nbsp;&nbsp;&nbsp;</th>
        <th>&nbsp;&nbsp;Account Type&nbsp;&nbsp;&nbsp;&nbsp;</th>
        <th>&nbsp;&nbsp;Subscription Type&nbsp;&nbsp;&nbsp;&nbsp;</th>
        <th>&nbsp;&nbsp;Status&nbsp;&nbsp;&nbsp;&nbsp;</th>
    </tr>
    <tr>
        <?php
        echo "<th style=\"color: black;\">&nbsp;&nbsp;&nbsp;".$dateRegistration."</th>";
        echo "<th style=\"color: black;\">&nbsp;&nbsp;&nbsp;".$dateStarted."</th>";
        echo "<th style=\"color: black;\">&nbsp;&nbsp;&nbsp;".$dateExpiration."&nbsp;&nbsp;&nbsp;</th>";
        echo $color.''.$accType."</th>";
        echo $color.''.$subsType."&nbsp;&nbsp;&nbsp;</th>";
        echo $color.''.$status."&nbsp;&nbsp;&nbsp;</th>";

        ?>

    </tr>

 </table>
 </form>
 </body>
 </html>

可能是您的虚拟主机系统没有将时间设置为当前时间,而是过去某处的时间。您可能想使用以下方式检查系统时间:

echo date('Y-m-d H:i:s'); exit;

将其放在代码的第一行 php 中,并检查时间是否与当前时间匹配,然后考虑更改系统时间。

此致,

我有自己的答案,如果没有包含数据库,我删除了mysql_real_escape_string