我在理解我遇到的这个问题时遇到了一些困难。我使用centOS创建了一个Web服务器,我有一个我在服务器上创建的html表单。问题是当我在表单中输入信息时,当我查看修改时间时,它显示的是UTC时间而不是EST时间。这是一个问题的原因是因为我使用日期保存文件的方式。因此,如果时间是在上午12:01但是信息是在晚上8:01输入的,而不是覆盖文件,那么将创建一个带有明天日期的新文件。我已经在我的PHP代码中将时区设置为EST,但它似乎不接受我的时区。
这是我的PHP代码。
if(isset($_POST['mydrivers']))
{
date_default_timezone_set('EST');
$month = date('M');
$fp = file('Reports/Shortage/' .$month. '/Shortage'.date('m-d-y'). ".csv");
//$fi = fopen('driver'.date('m-d-y'). ".csv", "a");
$header=array("Date", "Driver", "Customer #", "Invoice #", "Product Description", "Size", "CS", "Btls", "CHK Itls");
$driver = $_POST['drivers'];
$dates = $_POST['dates'];
$custnum = $_POST['customernum'];
$invnum = $_POST['invoicenum'];
$proddesc = $_POST['proddes'];
$sz = $_POST['size'];
$case = $_POST['cs'];
$bottle = $_POST['btls'];
$chkit = $_POST['chkitls'];
$result = '';
$search = "Driver";
$line_number = false;
while(list($key, $line) = each($fp) and !$line_number)
{
$line_number = (strpos($line, $search) !== FALSE);
}
if($line_number)
{
$result .=
$dates. " ,". $driver. " ,". $custnum. ", ". $invnum. ", ". $proddesc. ", ". $sz. " ,". $case. ", ". $bottle. ", ". $chkit. "\r\n";
}
else
{
$result .= implode(",",$header). "\r\n".
$dates. " ,". $driver. ", ". $custnum. " ,". $invnum. ", ". $proddesc. ", ". $sz. ", ". $case. " ,". $bottle. ", ". $chkit. "\r\n";
}
/*foreach ($fp as $file)
{
if(substr($file,0,8) != 'header 1')
{
$result .= implode(",",$header). "\r\n".
$driver. " ". $dates. " ". $custnum. " ". $invnum. " ". $proddesc. " ". $sz. " ". $case. " ". $bottle. " ". $chkit. "\r\n";
}
else
{
$result .=
$driver. " ". $dates. " ". $custnum. " ". $invnum. " ". $proddesc. " ". $sz. " ". $case. " ". $bottle. " ". $chkit. "\r\n";
}
}*/
if(!is_dir('Reports/Shortage/'.$month))
{
mkdir('Reports/Shortage/'.$month, 0777, true);
}
file_put_contents('Reports/Shortage/'.$month. '/Shortage'.date('m-d-y').".csv", $result, FILE_APPEND);
//myfputcsv($fp, $result);
echo "data added!!!";
这是设置时区的正确方法,还是我完全错了?
提前感谢您的帮助。
答案 0 :(得分:0)
尝试" America / New_York":
date_default_timezone_set('America/New_York');
答案 1 :(得分:0)
我找到了问题的答案。即使我在我的文件中设置时区,我实际上还是必须重新配置服务器本身的时间。我登录服务器并运行了这行简单的代码:
date MMDDhhmmYYYY
我记得我已经在服务器上设置了时区设置,所以我不确定他们为什么不坚持,但这已经解决了我的问题。