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以来一直有效 .

$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' ,结果可能是这样的:

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') 的有利事实是:

更容易处理时间操作

更容易处理时区

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

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 .

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

然后以这种方式思考:

// 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()

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

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

);

php中now()的用法,PHP中的NOW()函数相关推荐

  1. mysql中去重的用法_mysql中去重 distinct 用法

    在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...

  2. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  3. linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档

    第 第 PAGE 1 页 共 NUMPAGES 1 页 linux中的ftp命令用法 Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由小编为大家整理了linux中的ftp命令用法 ...

  4. python中print的用法_Python中print函数简单使用总结

    Python中print函数简单使用总结 print函数是Python的入门,每一个学习python的人都绕不开这个函数,下面介绍一下这个函数的用法. 打开电脑,选择python软件,下面选择pyth ...

  5. python中lambda()的用法_python中lambda()的用法

    在C++11和C#中都有匿名函数的存在.下面看看在python中匿名函数的使用. 1.lambda只是一个表达式,函数体比def简单很多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能 ...

  6. python中path的用法,python中path的用法

    如何将python的路径加到path中 方法一:函数添加 1 import sys 2 查看sys.path 3 添加sys.path.append("c:\\") 方法二:修改环 ...

  7. java中prepend的用法_jQuery中prepend()方法用法实例

    本文实例讲述了jQuery中prepend()方法用法.分享给大家供大家参考.具体分析如下: 此方法可向所有匹配元素的内部的前面追加HTML内容. 特别说明: 此方法是追加内容,也就是原来的内容还在. ...

  8. oracle中col 的用法,Oracle中的SUM用法讲解,

    Oracle中的SUM用法讲解, Oracle中的SUM条件查询 1.按照区域编码分组查询区域编码.IPTV_NBR不为空的数量.ACC_NBR不为空的数量.所有用户数量 SELECT AREA_CO ...

  9. linux中comm的用法,linux中comm命令用法

    linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令. comm命令功能:   选择或拒绝两个已排序的文件的公共的行. comm命令语法:comm [-12 ...

  10. python中replace的用法_python中replace的用法是什么?

    python中replace的用法是什么? Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次. r ...

最新文章

  1. php解析ip列表并入库
  2. SpaceX星舰飞船又炸了,马斯克迷惑表态:成功了!火星等我
  3. idea刷新项目、清除项目缓存
  4. 将给出的整数x翻转_每日一题:1.罗马数字转整数
  5. 大量数据生成excel时候造成jvm内存泄漏问题的解决与测
  6. 浅谈对JavaScript闭包的理解
  7. 数据结构与索引-- B+树索引
  8. windows延缓写入失败相关问题解决办法
  9. android编程文献,郭宏志. Android应用开发详解[M]. 2011.
  10. asp.net mvc源码分析-Action篇 Action的执行
  11. MATLAB GUI新手备忘录
  12. Pycharm汉化包+操作步骤
  13. [转]魔兽世界私服Trinity,从源码开始
  14. 解决RabbitMQ 集群搭建显示cookie
  15. 招聘时最看重应聘者的什么特质?
  16. 用 Python 给微信头像加个圣诞老人(平安果)小图标
  17. 计算机会计系统与手工会计系统有什么异同,会计电算化系统与手工会计系统的比较研究...
  18. robotframework之解决导入httplibrary库一直标红的问题
  19. MySQL基础(补充)
  20. incrby redis 最大值_redis incr incrby decr decrby命令

热门文章

  1. python实现单张图像拼接与批量图片拼接
  2. Python 35个内置函数,你都ok吗?
  3. 11个高效的VS调试技巧
  4. 第二讲 数学模型方法
  5. [NLP]基于IMDB影评情感分析之BERT实战-测试集上92.24%
  6. 理想制动力分配曲线matlab源代码_电动汽车机电复合制动力分配策略
  7. UML表示实体类型和属性
  8. 对比关系生成模型(Comparative Relation Generative Model)
  9. tensorflow第十一步CNN表情识别
  10. c语言终极面试宝典 pdf,C语言终极面试--编程