如何在PHP中获取当前日期和时间?

时间:2009-01-22 20:09:18

标签: php datetime

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

39 个答案:

答案 0 :(得分:572)

时间会耗费您的服务器时间。一个简单的解决方法是在调用date_default_timezone_setdate()函数之前使用time()手动设置时区。

我在墨尔本,Australia所以我有这样的事情:

date_default_timezone_set('Australia/Melbourne');

另一个例子是洛杉矶 - US

date_default_timezone_set('America/Los_Angeles');

您还可以通过以下方式查看服务器当前的时区:

date_default_timezone_get();

类似于:

$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;

所以你的问题的简短答案是:

// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());

然后所有时间都是你刚刚设定的时区:)

答案 1 :(得分:456)

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

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

// This would return the date in the following formats respectively:
$date = '2012-03-06 17:33:07';
// Or
$date = '2012/03/06 17:33:07';

/** 
 * This time is based on the default server time zone.
 * If you want the date in a different time zone,
 * say if you come from Nairobi, Kenya like I do, you can set
 * the time zone to Nairobi as shown below.
 */

date_default_timezone_set('Africa/Nairobi');

// Then call the date functions
$date = date('Y-m-d H:i:s');
// Or
$date = date('Y/m/d H:i:s');

// date_default_timezone_set() function is however
// supported by PHP version 5.1.0 or above.

有关时区参考,请参阅 List of Supported Timezones

答案 2 :(得分:176)

自PHP 5.2.0以来,您可以使用 OOP DateTime()进行操作(当然,如果您更喜欢OOP):

$now = new DateTime();
echo $now->format('Y-m-d H:i:s');    // MySQL datetime format
echo $now->getTimestamp();           // Unix Timestamp -- Since PHP 5.3

并指定timezone

$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London'));    // Another way
echo $now->getTimezone();

答案 3 :(得分:84)

参考:这是a link

由于夏令时,这比仅仅添加或减去一天或一个月中某个时间戳的秒数更可靠。

PHP代码

// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)

答案 4 :(得分:61)

PHP的time()返回当前的Unix时间戳。有了这个,您可以使用date()功能根据需要对其进行格式化。

$date = date('Format String', time());

正如Paolo在评论中提到的,第二个论点是多余的。以下代码段与上面的内容相同:

$date = date('Format String');

答案 5 :(得分:58)

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

答案 6 :(得分:49)

您可以同时使用 $_SERVER['REQUEST_TIME'] 变量或 time() 功能。这两个都返回一个Unix时间戳。

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

根据您上面的示例代码,您将希望在获得Unix Timestamp后格式化此信息。无格式Unix time看起来像是:1232659628

因此,为了获得可行的内容,您可以使用 date() 函数对其进行格式化。

有关使用date()功能的方法的一个很好的参考资料位于PHP Manual

例如,以下代码返回如下所示的日期:01/22/2009 04:35:00 pm

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

答案 7 :(得分:43)

PHP的date函数可以完成这项工作。

date()

说明

string date(string $format [, int $timestamp = time()])

使用给定的整数时间戳返回根据给定格式字符串格式化的字符串,如果没有给出时间戳,则返回当前时间。

<强>示例:

$today = date("F j, Y, g:i a");               // March 10, 2001, 5:16 pm
$today = date("m.d.y");                       // 03.10.01
$today = date("j, n, Y");                     // 10, 3, 2001
$today = date("Ymd");                         // 20010310
$today = date('h-i-s, j-m-y, it is w Day');   // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y");             // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');   // 17:03:18 m is month
$today = date("H:i:s");                       // 17:16:18
$today = date("Y-m-d H:i:s");                 // 2001-03-10 17:16:18 (the MySQL DATETIME format)

答案 8 :(得分:24)

 $date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
 echo $date->format('d-m-Y H:i:s');

<强>更新

 //Also get am/pm in datetime:
 echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am

对于日期格式, PHP date() Function 很有用。

答案 9 :(得分:20)

使用:

$date = date('m/d/Y h:i:s a', time());

有效。

答案 10 :(得分:16)

echo date("d-m-Y H:i:sa");

此代码将获取运行代码的服务器的日期和时间。

答案 11 :(得分:15)

  

非常简单

     

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

答案 12 :(得分:14)

您也可以使用以下格式:

$date = date("d-m-Y");

或者

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

答案 13 :(得分:13)

根据文章 How to Get Current Datetime (NOW) with PHP ,有两种常用方法可以获取当前日期。要使用PHP获取当前日期时间(现在),您可以将date类与任何PHP版本一起使用,或者更好地将datetime类与PHP&gt; = 5.2一起使用。

此处提供了各种日期格式表达式。

使用日期的示例

此表达式将以Y-m-d H:i:s格式返回NOW。

<?php
    echo date('Y-m-d H:i:s');
?>

使用datetime类

的示例

此表达式将以Y-m-d H:i:s格式返回NOW。

<?php
    $dt = new DateTime();
    echo $dt->format('Y-m-d H:i:s');
?>

答案 14 :(得分:12)

<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>

这样打印

2012年12月9日星期日

答案 15 :(得分:11)

<?php
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>

答案 16 :(得分:9)

date_default_timezone_set('Europe/Warsaw');
echo("<p class='time'>".date('H:i:s')."</p>");
echo("<p class='date'>".date('d/m/Y')."</p>");

答案 17 :(得分:9)

您可以使用此代码:

<?php
    $currentDateTime = date('Y-m-d H:i:s');
    echo $currentDateTime;
?>

答案 18 :(得分:9)

日期格式也取决于:

echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm

答案 19 :(得分:9)

date(format, timestamp)

date函数使用给定的整数时间戳返回根据给定格式字符串格式化的字符串,如果没有给出时间戳,则返回当前时间。换句话说,timestamp是可选的,默认为time()的值。

参数是 -

  

格式 - 必填。指定时间戳的格式

     

timestamp - (可选)指定时间戳。默认值是当前日期和时间

如何获得简单的日期

date()函数所需的格式参数指定如何格式化date (or time)

以下是一些常用于日期的字符:

  1. d - 代表月中的某一天(01至31)
  2. m - 代表一个月(01至12)
  3. Y - 代表一年(四位数)
  4. l(小写'L') - 代表星期几
  5. 还可以在字符之间插入其他字符,例如"/", ".", or "-",以添加其他格式。

    下面的示例以三种不同的方式格式化今天的日期:

    <?php
        echo "Today is " . date("Y/m/d") . "<br>";
        echo "Today is " . date("Y.m.d") . "<br>";
        echo "Today is " . date("Y-m-d") . "<br>";
        echo "Today is " . date("l");
    ?>
    

    一些有用的链接

答案 20 :(得分:9)

如果您想要不同的时间表,请使用:

$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);

date_default_timezone_set("Asia/Calcutta");
echo date("Y/m/d H:i:s");

答案 21 :(得分:9)

设置您的时区:

date_default_timezone_set('Asia/Calcutta');

然后调用日期函数

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

答案 22 :(得分:7)

另一种简单的方法是获取当前日期和时间的时间戳。使用 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

答案 23 :(得分:7)

我发现在PHP中获取当前时间的最简单方法就是这样。

//Prints out something like 10:00am Just be sure to set your timezone correctly.
date_default_timezone_set("America/Chicago");
$TIME = date('G:ia'); 

答案 24 :(得分:5)

如果你是孟加拉国人,如果你想获得Dhaka的时间,那就用这个:

$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y H:i:s');

答案 25 :(得分:5)

sudo luarocks install qtlua

答案 26 :(得分:5)

以下是一些常用的字符:

  1. h - 带有前导零(01到12)的一小时12小时格式
  2. i - 前导零(00至59)的分钟
  3. s - 带前导零的秒数(00到59)
  4. a - 小写Ante meridiem和Post meridiem(am或pm)

  5. 获取您的时区

    <?php
        date_default_timezone_set("America/New_York");
        echo "The time is " . date("h:i:sa");
    ?>
    

    检查出(可选)

    <?php
        $d = mktime(11, 14, 54, 8, 12, 2014);
        echo "Created date is " . date("Y-m-d h:i:sa", $d);
    ?>
    

    约会

    <?php
        echo "Today is " . date("Y/m/d") . ;
        echo "Today is " . date("Y.m.d") . ;
        echo "Today is " . date("Y-m-d") . ;
        echo "Today is " . date("l");
    ?>
    

    以下是一些常用于日期的字符:

    1. d - 代表月中的某一天(01至31)
    2. m - 代表一个月(01至12)
    3. Y - 代表一年(四位数)
    4. l(小写'L') - 代表星期几
    5. Source-W3-Schools

答案 27 :(得分:4)

如果您希望获得 12-3-2016 之类的日期,请将每天,每月和每年的值分开,然后复制粘贴此代码:

$day = date("d");
$month = date("m");
$year = date("y");
print "date" . $day . "-" . $month . "-" . $year;

答案 28 :(得分:3)

PHP以秒为单位返回当前时间。您需要以任何您想要的格式对它们进行格式化。

<?php
    // time() returns current time in seconds
    $in_seconds = time();

    // strftime - Format a local time/date according to locale settings
    echo strftime("%m/%d/%y", $in_seconds);
?>

参考:http://php.net/manual/en/function.strftime.php

答案 29 :(得分:3)

非常简单

date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());

答案 30 :(得分:3)

通常,该日期功能对每个人都有用: date(“ Y / m / d”);

但是时间有所不同,因为时间函数取决于PHP版本或系统日期。

所以大概用它来获取我们自己的时区:

$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');

此功能显示24小时的时间。

答案 31 :(得分:3)

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

$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');

其他时区列表为here

答案 32 :(得分:3)

我们可以使用$users = [ ['name' => 'John', 'email' => 'john@gmail.com'], ['name' => 'Jane', 'email' => 'jane@gmail.com'], ['name' => 'Max', 'email' => 'max@gmail.com'], ]; 功能并设置默认时区:

date

答案 33 :(得分:2)

对于新的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));

您可以在here

中了解更多信息

2。 DateTime(PHP 5> = 5.2.0,PHP 7)

当您想将PHP与OOP一起使用时,这是获取日期和时间的最佳方法。

<?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";
?>

您可以在here

中了解更多信息

3。 Carbon Date时间包

如果您使用的是ComposerLaravelSymfony或任何某种框架,则这是获取日期和时间的最佳方法。另外,此包在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'

您可以在here

中了解更多信息

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

答案 34 :(得分:2)

只需使用:date("Y-m-d H:i:s"),这将为您提供日期和时间,例如“ 2020-08-22 12:20:30”。 在date()函数之前添加date_default_timezone_set("your time zone"),以获取您所在区域/区域的时间日期。 here you can find you time zone

答案 35 :(得分:1)

echo $today = date('y-m-d');
  

这将返回今天的日期。

答案 36 :(得分:1)

您只需使用此代码即可获取当前日期和时间

echo date('r', time());

答案 37 :(得分:0)

Linux服务器时间和PHP时间()差异时区如下:

struct Response: Decodable {
    let results: [Order]
}

struct Order: Decodable {
    let charge_id: String
    let createdAt: String
    let items_bought : [BoughtItems]
    let objectId: String
    let soldBy: String
    let total: String
    let status: String
}

struct BoughtItems: Decodable {
    let price: Int
    let productTitle: String
    let quantity: Int
    let variantId: Int
    let variantTitle: String
}

答案 38 :(得分:0)

以下是一些常用的字符:

  • d-代表每月的某天(01到31)

  • m-代表一个月(01到12)

  • Y-代表年份(四位数)

  • l(小写的“ L”)-代表星期几

  • H-小时的24小时格式(00到23)

  • h-小时的12小时格式,前导零(01到12)

  • i-以零开头(00至59)的分钟

  • s-秒前导零(00至59)

  • a-小写的前子午后和后子午后(上午或下午)

示例:

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