php中now()的用法,PHP中的NOW()函数

 2023-09-08 阅读 21 评论 0

摘要:Short answer$now = date_create()->format('Y-m-d H:i:s');请阅读下面的长篇答案 .Mimicry in PHP要模仿PHP中的MySQL NOW() 函数,可以使用 date_create()->format('Y-m-d H:i:s') . 这种方法可以让您更轻松地处理时间/时区操作 date('

Short answer

$now = date_create()->format('Y-m-d H:i:s');

请阅读下面的长篇答案 .

Mimicry in PHP

要模仿PHP中的MySQL NOW() 函数,可以使用 date_create()->format('Y-m-d H:i:s') . 这种方法可以让您更轻松地处理时间/时区操作 date('Y-m-d H:i:s') . 它更具可读性,自php 5.2以来一直有效 .

excel的now函数。$now = date_create('now')->format('Y-m-d H:i:s'); // works in php 5.2 and higher

$now = date_create()->format('Y-m-d H:i:s'); // also works in php 5.2

$now = new DateTime('now')->format('Y-m-d H:i:s'); // syntax error!!!

$now = (new DateTime('now'))->format('Y-m-d H:i:s'); // works in php 5.4 and higher

$now = date('Y-m-d H:i:s'); // works as well, but it's less nice then date_create()

之所以能正常工作是因为MySQL函数 NOW() 以这种格式给出了dateTime值: 'YYYY-MM-DD HH:MM:SS' . 见这里:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_now . 一个有趣的事实是,通过运行此查询可以获得日期时间格式: SHOW VARIABLES LIKE 'd%e_format' ,结果可能是这样的:

php define 函数。Variable_name Value

date_format %Y-%m-%d

datetime_format %Y-%m-%d %H:%i:%

这里的变量是只读变量 . 所以你无法改变它 . 我想MySQL NOW() 函数从 datetime_format 变量获取它的格式 .

date_create()->format() VS date()

date_create('now')->format('Y-m-d H:i:s') 超过 date('Y-m-d H:i:s') 的有利事实是:

函数加now自动、更容易处理时间操作

更容易处理时区

more o.o.p.

easier to handle time manipulations

date_create() 接受相对日期/时间格式(如 now , yesterday 或 +1 day ),请参阅this link,示例:

$tomorrow = date_create('+1 day')->format('Y-m-d H:i:s');

year函数的用法、date() 也接受相对日期/时间格式,如下所示:

$tomorrow = date('Y-m-d H:i:s', strtotime('+1 day'));

$tomorrow = date('Y-m-d H:i:s', (time() + 86400)); // 86400 seconds = 1 day

easier to handle timezones

当时区很重要时, date_create()->format() 的使用比 date() 更有意义,因为 date() 使用在 date.timezone 指令的 php.ini 中配置的默认时区 . (链接:http://php.net/manual/en/datetime.configuration.php#ini.date.timezone) . 可以改变时区,例如 date_default_timezone_set('Asia/Tokyo'); . 但缺点是它会影响所有日期/时间功能 . 如果将 date_create()->format() 与 timezone_open() 结合使用,则此问题不存在 .

PHP支持多个时区 . 有趣的是它甚至支持北极圈和南极洲 . 你听说过 Longyearbyen 吗?如果没有,那么5分钟前也不会听到这个消息 . 但是,这里的好处是PHP知道 Arctic/Longyearbyen .

php函数、more o.o.p.

O.O.P.使用state-full Object . 所以我更喜欢用这种方式思考:

// Create a DateTime Object.

// Use the DateTime that applies for tomorrow.

// Give me the datetime in format 'Y-m-d H:i:s'

$tomorrow = date_create('+1 day')->format('Y-m-d H:i:s');

php return、然后以这种方式思考:

// Give me a date time string in format 'Y-m-d H:i:s',

// use strtotime() to calculate the Unix timestamp that applies for tomorrow.

$tomorrow = date('Y-m-d H:i:s', strtotime('+1 day'));

因此,我会说 date_create()->format() 方法对我来说更具可读性 date() .

Example of date_create()->format()

int函数,如果我必须填充数组,我会将这种方法用于我的项目 . 像这样:

$array = array(

'name' => 'John',

'date_time' => date_create('now')->format('Y-m-d H:i:s'), // uses the default timezone

'date_time_japan' => date_create('now', timezone_open('Asia/Tokyo'))->format('Y-m-d H:i:s'),

);

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/19072.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息