如何从服务器获取日期和时间

时间:2011-07-08 07:57:09

标签: php datetime

我想从服务器检索日期和时间,并根据它做一些事情。为此,我使用了以下代码:

$info = getdate();
$date = $info['mday'];
$month = $info['mon'];
$year = $info['year'];
$hour = $info['hours'];
$min = $info['minutes'];
$sec = $info['seconds'];

$current_date = "$date/$month/$year == $hour:$min:$sec";

此代码返回正确的日期,但问题是我在cpanel(服务器时间)中看到的是diff。比我从代码中得到的。在cpanel时间是CDT,而从代码中它显示UTC,我使用以下代码重新确认

<?php echo date("r == e"); ?>

为什么会发生这种情况以及我在代码中需要做哪些更改才能获得正确的服务器时间。

7 个答案:

答案 0 :(得分:52)

你应该set the timezone到你想要的timezones

// set default timezone
date_default_timezone_set('America/Chicago'); // CDT

$info = getdate();
$date = $info['mday'];
$month = $info['mon'];
$year = $info['year'];
$hour = $info['hours'];
$min = $info['minutes'];
$sec = $info['seconds'];

$current_date = "$date/$month/$year == $hour:$min:$sec";

或者更短的版本:

// set default timezone
date_default_timezone_set('America/Chicago'); // CDT

$current_date = date('d/m/Y == H:i:s');

答案 1 :(得分:7)

试试这个 -

jo.each(function () {

    $( this ).find( "td select option:selected" ).each( function(){
        for (var d = 0; d < data.length; ++d) 
        {
            if ( $( this ).text() == data[d] ) 
            {
                console.log(data[d]);
                $( this ).parent("tr").show();
                break;
            }
        }
    })
});

答案 2 :(得分:5)

需要对整个脚本使用date_default_timezone_set,只需使用DateTime对象指定所需的timezone

$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London'));    // Another way
echo $now->format("Y-m-d\TH:i:sO"); // something like "2015-02-11T06:16:47+0100" (ISO 8601)

答案 3 :(得分:1)

您必须设置时区,参见http://www.php.net/manual/en/book.datetime.php

答案 4 :(得分:0)

要启用PHP扩展intl,请按照步骤..

  1. 在任何编辑器中打开xampp / php / php.ini文件。
  2. 搜索&#34 ;; extension = php_intl.dll&#34;
  3. 请删除起始分号(;),如:; extension = php_intl.dll。至。 延长= php_intl.dll。
  4. 保存xampp / php / php.ini文件。
  5. 重新启动你的xampp / wamp。

答案 5 :(得分:0)

您应将时区设置为所需的时区之一。让我们设置印度时区

// set default timezone
date_default_timezone_set('Asia/Kolkata');

$info = getdate();
$date = $info['mday'];
$month = $info['mon'];
$year = $info['year'];
$hour = $info['hours'];
$min = $info['minutes'];
$sec = $info['seconds'];

$current_date = "$date/$month/$year == $hour:$min:$sec";

答案 6 :(得分:0)

您可以使用“ system(string $ command [,int&$ return_var]):string”函数。对于Windows系统(“ time”);,系统(“ time> output.txt”);将响应放入output.txt文件中。如果您打算在其他人的服务器上部署网站,则可能不希望对服务器时间进行硬编码,因为服务器可能会移至未知时区。然后,最好在php.ini文件中设置默认时区。我使用Hostinger,它们允许您配置php.ini值。