我在理解發生這個問題時遇到了一些困難。我創建了一個使用centOS的web服務器,我有一個我在服務器上創建的html表單。問題是,當我在窗體中輸入信息時,當我查看修改時間時,它顯示的是UTC時間而不是EST時間。這是一個問題的原因是因爲我的文件被保存爲使用日期的方式。所以如果時間在說這是上午12:01,但是信息是在晚上8:01輸入的,而不是覆蓋文件,它將創建一個包含明天日期的新文件。我在我的php代碼中設置了時區到EST,但它似乎並不接受我的時區。修改時間顯示UTC時區
這是我的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!!!";
這是設置時區的正確方法,還是我這樣做完全錯了?
感謝您的幫助提前。
我只是試過,我仍然得到相同的結果。時間仍然顯示爲UTC。 –
「時間」是什麼,到底是什麼?這裏沒有代碼,那不是日期「m-d-y」,無論你在紐約還是倫敦,一天的大部分時間都是一樣的......我們是指命令提示符下的服務器時間嗎?調用數據庫?也許你想在php.ini中設置時區? –
我指的是修改時間。當我去到程序所在服務器的IP時,我查看目錄並查看日期修改,它顯示當前日期,但時間將提前5小時。例如,我添加了一個新項目,運行我的腳本,它會覆蓋文件,如果它存在並追加新信息。當我回頭看目錄時,它會顯示已更改8/11/2016 10:18:13 pm。文件改變時顯示的時間就是我所指的時間。我不知道它是否是我需要改變或者什麼的服務器設置。 –