PHP&系统日期不同 [英] PHP & system dates are different

查看:43
本文介绍了PHP&系统日期不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

系统和PHP之间的日期/时间不同。

I am getting different dates/times between system and PHP.

系统

        $ date
        Tue Nov  3 19:16:51 EAT 2015

PHP

        echo date("D M j G:i:s T Y");
        -> Tue Nov 3 16:16:23 UTC 2015

即使系统已将PHP默认设置为UTC具有不同的时区。我该如何使PHP选择系统日期/时间?

It appears PHP is defaulting to UTC even though the system has a different time zone. How can I make PHP pick system date/time?

注意:出于维护原因,我避免对时区进行硬编码。

Note: I am avoiding hard-coding the timezone, for maintenance reasons.

谢谢。

推荐答案

似乎没有简单的方法(独立于系统)来获取系统日期/时间在PHP中,但这似乎可行:

There seems to be no easy (system independent) way of getting system date/time in PHP, but this seems to work:

    $timezone = 'UTC';
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
         $timezone = exec('tzutil /g');
    } else {
            $timezone = exec('date +%Z');
    }

    $localTimezone = new DateTimeZone($timezone);
    $myDateTime = new DateTime(date(), $localTimezone);
    echo ($myDateTime->format('D M j G:i:s T Y') );

我没有在Windows上进行过测试,但在Linux上却可以工作。

I haven't tested on Windows but on Linux it works.

这篇关于PHP&系统日期不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆