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;\"> ";
#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;\"> ";
}
if (strtotime($dateStarted)<strtotime('-30 days')) {
$subsType = "FOR RENEWAL";
$accType = "EXISTING";
$status = "INACTIVE";
$color = "<th style=\"color: red;\"> ";
}
if (strtotime($dateStarted)<strtotime('-90 days')) {
$accType = "DORMANT";
$subsType = "FOR WINBACK";
$status = "INACTIVE";
$color = "<th style=\"color: red;\"> ";
}
}
$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/>
<label><strong>Date of Registration:</strong></label>
<input type="date" id="date" name="dateRegistration" placeholder="Date of Reg">
<label><strong>Start of Subscription:</strong></label>
<input type="date" id="date" name="dateStarted" placeholder="Start ">
<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> Date of Registration </th>
<th> Start of Subscription </th>
<th> Expiration </th>
<th> Account Type </th>
<th> Subscription Type </th>
<th> Status </th>
</tr>
<tr>
<?php
echo "<th style=\"color: black;\"> ".$dateRegistration."</th>";
echo "<th style=\"color: black;\"> ".$dateStarted."</th>";
echo "<th style=\"color: black;\"> ".$dateExpiration." </th>";
echo $color.''.$accType."</th>";
echo $color.''.$subsType." </th>";
echo $color.''.$status." </th>";
?>
</tr>
</table>
</form>
</body>
</html>
可能是您的虚拟主机系统没有将时间设置为当前时间,而是过去某处的时间。您可能想使用以下方式检查系统时间:
echo date('Y-m-d H:i:s'); exit;
将其放在代码的第一行 php 中,并检查时间是否与当前时间匹配,然后考虑更改系统时间。
此致,
我有自己的答案,如果没有包含数据库,我删除了mysql_real_escape_string
。
抱歉,我是 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;\"> ";
#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;\"> ";
}
if (strtotime($dateStarted)<strtotime('-30 days')) {
$subsType = "FOR RENEWAL";
$accType = "EXISTING";
$status = "INACTIVE";
$color = "<th style=\"color: red;\"> ";
}
if (strtotime($dateStarted)<strtotime('-90 days')) {
$accType = "DORMANT";
$subsType = "FOR WINBACK";
$status = "INACTIVE";
$color = "<th style=\"color: red;\"> ";
}
}
$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/>
<label><strong>Date of Registration:</strong></label>
<input type="date" id="date" name="dateRegistration" placeholder="Date of Reg">
<label><strong>Start of Subscription:</strong></label>
<input type="date" id="date" name="dateStarted" placeholder="Start ">
<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> Date of Registration </th>
<th> Start of Subscription </th>
<th> Expiration </th>
<th> Account Type </th>
<th> Subscription Type </th>
<th> Status </th>
</tr>
<tr>
<?php
echo "<th style=\"color: black;\"> ".$dateRegistration."</th>";
echo "<th style=\"color: black;\"> ".$dateStarted."</th>";
echo "<th style=\"color: black;\"> ".$dateExpiration." </th>";
echo $color.''.$accType."</th>";
echo $color.''.$subsType." </th>";
echo $color.''.$status." </th>";
?>
</tr>
</table>
</form>
</body>
</html>
可能是您的虚拟主机系统没有将时间设置为当前时间,而是过去某处的时间。您可能想使用以下方式检查系统时间:
echo date('Y-m-d H:i:s'); exit;
将其放在代码的第一行 php 中,并检查时间是否与当前时间匹配,然后考虑更改系统时间。
此致,
我有自己的答案,如果没有包含数据库,我删除了mysql_real_escape_string
。