簡體   English   中英

日期修改時間顯示UTC時區

[英]Date modified time is showing UTC timezone

我在理解我遇到的此問題的狀況時遇到一些困難。 我使用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!!!";

這是設置時區的正確方法,還是我做錯了?

感謝您的幫助。

嘗試“美國/紐約”:

date_default_timezone_set('America/New_York');

請在此處查看時區列表: http : //php.net/manual/en/timezones.america.php

我找到了問題的答案。 即使我在文件中設置了時區,實際上我也不得不在服務器上重新配置時間。 我登錄到服務器並運行了以下簡單代碼行:

date MMDDhhmmYYYY

我記得我已經在服務器上設置了時區設置,所以我不確定為什么它們沒有堅持,但這已經解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM