哪个PHP函数可以返回当前日期/时间?


当前回答

你可以使用$_SERVER['REQUEST_TIME']变量或time()函数。这两个函数都返回Unix时间戳。

大多数情况下,这两个解决方案将产生完全相同的Unix时间戳。它们之间的区别是$_SERVER['REQUEST_TIME']返回最近服务器请求的时间戳,而time()返回当前时间。根据应用程序的不同,这可能会在准确性上产生微小的差异,但在大多数情况下,这两种解决方案都足够了。

根据上面的示例代码,一旦获得Unix时间戳,您将希望格式化此信息。未格式化的Unix时间看起来像:1232659628

因此,为了得到一些可以工作的东西,您可以使用date()函数来格式化它。

关于date()函数的使用方法,PHP手册中有很好的参考资料。

例如,下面的代码返回一个日期:01/22/2009 04:35:00 pm:

echo date("m/d/Y h:i:s a", time());

其他回答

另一种简单的方法是获取当前日期和时间的时间戳。使用mktime()函数:

$now = mktime(); // Return timestamp of the current time

然后您可以将其转换为另一种日期格式:

//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);

更多的日期格式在这里: http://php.net/manual/en/function.date.php

获取当前时间和日期的最佳方法是使用PHP中的date函数:

$date = date('FORMAT'); // FORMAT E.g.: Y-m-d H:i:s

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

使用Unix时间戳:

$now_date = date('FORMAT', time()); // FORMAT Eg : Y-m-d H:i:s

设置服务器时区。

date_default_timezone_set('Asia/Calcutta');

这里有一个不同的时区列表。

您可以使用$_SERVER['REQUEST_TIME']变量(自PHP 5.1.0起可用)或time()函数来获取当前的Unix时间戳。

下面是一些常用的表示时间的字符:

d -表示一个月中的第一天(01 ~ 31) m -代表一个月(01 ~ 12) Y -年份(四位数) l(小写“l”)-代表星期几 H -以小时为单位的24小时格式(00至23) H -以前导零表示的12小时格式(01到12) i -前导0的分钟(00到59) s -前导0的秒(00到59) a -小写的子午线前后(am或pm)

例子:

echo "Today " . date("Y/m/d") ;
echo "time " . date("h:i:sa");

对于新的PHP程序员来说,他们可能会困惑为什么有这么多方法来获取当前日期和时间,以及在他们的项目中使用哪一种方法。

1. date方法(PHP 4, PHP 5, PHP 7)

这是php中获取日期和时间的最常见和最简单的方法。

// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');


// Prints something like: Monday
echo date("l");

// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* use the constants in the format parameter */
// prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// prints something like: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));

你可以在这里了解更多

2. DateTime类(PHP 5 >= 5.2.0, PHP 7)

当你想在OOP中使用PHP时,这是获取日期和时间的最佳方式。

<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Specified date/time in the specified time zone.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in your computer's time zone.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Using a UNIX timestamp.  Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Non-existent values roll over.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

你可以在这里了解更多

3.碳日期时间套餐

如果你正在使用Composer, Laravel, Symfony或任何类型的框架,这是获得日期和时间的最佳方式。此外,这个包扩展了php中的DateTime类,因此您可以使用DateTime类中的所有方法。 这个内置的框架像laravel,所以你不需要单独安装它。

printf("Right now is %s", Carbon::now()->toDateTimeString());
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); // automatically converted to string
$tomorrow = Carbon::now()->addDay();
$lastWeek = Carbon::now()->subWeek();

// Carbon embed 823 languages:
echo $tomorrow->locale('fr')->isoFormat('dddd, MMMM Do YYYY, h:mm');
echo $tomorrow->locale('ar')->isoFormat('dddd, MMMM Do YYYY, h:mm');

$officialDate = Carbon::now()->toRfc2822String();

$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;

$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');

$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');

if (Carbon::now()->isWeekend()) {
    echo 'Party!';
}
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'

你可以在这里了解更多

希望这对你有所帮助,如果你知道任何其他获取日期和时间的方法,请随意编辑答案。