2016-08-11 2 views
0

У меня возникли некоторые трудности с пониманием того, что происходит с этим вопросом, который у меня есть. Я создал веб-сервер с помощью centOS, у меня есть html-форма, которую я создал на сервере. проблема заключается в том, что когда я вводим информацию в форму, когда я смотрю на измененное время, она показывает время UTC, а не время EST. причина в том, что это проблема, потому что у меня есть файл, который сохраняется, так как используется дата. поэтому, если время говорит, что это 12:01 утра, но информация была введена в 8:01 вечера, вместо того, чтобы перезаписать файл, собирается создать новый файл с датой завтрашнего дня на нем. Я установил часовой пояс для EST в моем php-коде, но он, похоже, не принимает мой часовой пояс.Дата изменения времени показывает часовой пояс 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!!!"; 

Это правильный способ установить часовой пояс, или я делаю это совершенно неправильно?

Спасибо за вашу помощь заранее.

ответ

0

Try "Америка/Триатлон":

date_default_timezone_set('America/New_York'); 

Смотрите список часовых поясов здесь: http://php.net/manual/en/timezones.america.php

+0

Я просто попробовал это, и у меня все те же результаты. время показывается как UTC. –

+0

«Время», что, точно? Здесь нет кода, который не является датой «m-d-y», которая в течение большей части дня была бы такой же, независимо от того, находитесь ли вы в Нью-Йорке или Лондоне ... мы имеем в виду время сервера в командной строке? Звонки в базу данных? Возможно, вы хотите установить часовой пояс в php.ini? –

+0

Время, о котором я говорю, это время изменения. когда я перехожу на IP-адрес сервера, где находится программа, я смотрю в каталог и смотрю на дату изменения, он показывает текущую дату, но время будет на 5 часов вперед. например, я добавляю в новый элемент, запускаю свой скрипт и перезаписывает файл, если он есть, и добавляет новую информацию. когда я оглядываюсь назад в каталоге, он будет отображаться измененным 8/11/2016 10:18:13 pm. Время, которое оно показывает, когда файл был изменен, - это время, о котором я говорю. Я не знаю, является ли это настройкой сервера, которую мне нужно изменить или что. –

0

я узнал ответ на эту проблему. Несмотря на то, что я установил часовой пояс в своем файле, мне действительно пришлось перенастроить время на самом сервере. Я вошел в сервер и запустил эту простую строку кода:

date MMDDhhmmYYYY

Я помню, что я уже установить настройки часового пояса на сервере, поэтому я не знаю, почему они не прилипали, но это имеет решил мою проблему.

Смежные вопросы