繁体   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