哪个PHP函数可以返回当前日期/时间?
当前回答
根据如何使用PHP获取当前日期时间(NOW)这篇文章,有两种常见的方法来获取当前日期。要在PHP中获取当前的日期时间(now),您可以在任何PHP版本中使用date类,或者在PHP >= 5.2中使用datetime类。
这里有各种日期格式表达式。
使用日期的示例
该表达式将以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');
?>
其他回答
获取当前时间和日期的最佳方法是使用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');
这里有一个不同的时区列表。
时间会随着服务器时间流逝。一个简单的解决方法是在调用date()或time()函数之前使用date_default_timezone_set手动设置时区。
我在澳大利亚墨尔本,所以我有这样的东西:
date_default_timezone_set('Australia/Melbourne');
或者另一个例子是洛杉矶-美国:
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());
那么所有的时间都将是你刚刚设置的时区:)
使用date()和DateTimeInterface::format格式化日期,即date('Y-m-d H:i:s');,你有这些可选格式:
来源:DateTimeInterface:::格式页面。
format character | Description | Example returned values |
---|---|---|
Day | --- | --- |
d | Day of the month, 2 digits with leading zeros | 01 to 31 |
D | A textual representation of a day, three letters | Mon through Sun |
j | Day of the month without leading zeros | 1 to 31 |
l (lowercase 'L') | A full textual representation of the day of the week | Sunday through Saturday |
N | ISO 8601 numeric representation of the day of the week | 1 (for Monday) through 7 (for Sunday) |
S | English ordinal suffix for the day of the month, 2 characters | st, nd, rd or th. Works well with j |
w | Numeric representation of the day of the week | 0 (for Sunday) through 6 (for Saturday) |
z | The day of the year (starting from 0) | 0 through 365 |
Week | --- | --- |
W | ISO 8601 week number of year, weeks starting on Monday | Example: 42 (the 42nd week in the year) |
Month | --- | --- |
F | A full textual representation of a month, such as January or March | January through December |
m | Numeric representation of a month, with leading zeros | 01 through 12 |
M | A short textual representation of a month, three letters | Jan through Dec |
n | Numeric representation of a month, without leading zeros | 1 through 12 |
t | Number of days in the given month | 28 through 31 |
Year | --- | --- |
L | Whether it's a leap year | 1 if it is a leap year, 0 otherwise. |
o | ISO 8601 week-numbering year. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. | Examples: 1999 or 2003 |
X | An expanded full numeric representation of a year, at least 4 digits, with - for years BCE, and + for years CE. | Examples: -0055, +0787, +1999, +10191 |
x | An expanded full numeric representation if requried, or a standard full numeral representation if possible (like Y). At least four digits. Years BCE are prefixed with a -. Years beyond (and including) 10000 are prefixed by a +. | Examples: -0055, 0787, 1999, +10191 |
Y | A full numeric representation of a year, at least 4 digits, with - for years BCE. | Examples: -0055, 0787, 1999, 2003, 10191 |
y | A two digit representation of a year | Examples: 99 or 03 |
Time | --- | --- |
a | Lowercase Ante meridiem and Post meridiem | am or pm |
A | Uppercase Ante meridiem and Post meridiem | AM or PM |
B | Swatch Internet time | 000 through 999 |
g | 12-hour format of an hour without leading zeros | 1 through 12 |
G | 24-hour format of an hour without leading zeros | 0 through 23 |
h | 12-hour format of an hour with leading zeros | 01 through 12 |
H | 24-hour format of an hour with leading zeros | 00 through 23 |
i | Minutes with leading zeros | 00 to 59 |
s | Seconds with leading zeros | 00 through 59 |
u | Microseconds. Note that date() will always generate 000000 since it takes an int parameter, whereas DateTime::format() does support microseconds if DateTime was created with microseconds. | Example: 654321 |
v | Milliseconds. Same note applies as for u. | Example: 654 |
Timezone | --- | --- |
e | Timezone identifier | Examples: UTC, GMT, Atlantic/Azores |
I (capital i) | Whether or not the date is in daylight saving time | 1 if Daylight Saving Time, 0 otherwise. |
O | Difference to Greenwich time (GMT) without colon between hours and minutes | Example: +0200 |
P | Difference to Greenwich time (GMT) with colon between hours and minutes | Example: +02:00 |
p | The same as P, but returns Z instead of +00:00 (available as of PHP 8.0.0) | Examples: Z or +02:00 |
T | Timezone abbreviation, if known; otherwise the GMT offset. | Examples: EST, MDT, +05 |
Z | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. | -43200 through 50400 |
Full Date/Time | --- | --- |
c | ISO 8601 date | 2004-02-12T15:19:21+00:00 |
r | » RFC 2822/» RFC 5322 formatted date | Example: Thu, 21 Dec 2000 16:01:07 +0200 |
U | Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | See also time() |
PHP的time()返回当前Unix时间戳。这样,您就可以使用date()函数将其格式化为您需要的格式。
$date = date('Format String', time());
正如Paolo在评论中提到的,第二个论点是多余的。下面的代码段相当于上面的代码段:
$date = date('Format String');
您的国家时区:支持的时区列表
date_default_timezone_set('Asia/Kolkata');
$dateYmd = date('Y-m-d');
echo "Current Year Month Day: $dateYmd";
本年月日:2022-01-03
$datehms = date('h:i:s');
echo "Current Hour Minute Second: $datehms";
当前小时分秒:11:05:38
推荐文章
- 如何实现一个好的脏话过滤器?
- PHP中的三个点(…)是什么意思?
- Guzzlehttp -如何从guzzle6得到响应的正文?
- 移动一个文件到服务器上的另一个文件夹
- Laravel中使用雄辩的ORM进行批量插入
- PHP 5.4调用时引用传递-容易修复可用吗?
- 格式化字节到千字节,兆字节,千兆字节
- 如何在PowerShell格式化日期时间
- 如何在PHP中获得变量名作为字符串?
- 在c#中解析字符串为日期时间
- 用“+”(数组联合运算符)合并两个数组如何工作?
- Laravel PHP命令未找到
- 如何修复从源代码安装PHP时未发现xml2-config的错误?
- 如何在Python中获取UTC时间?
- 在PHP中对动态变量名使用大括号