php - 修改 DateTime on Month 短名称格式的日期字符串

标签 php

我想对格式为“2016 年 1 月 21 日”的日期字符串使用 datetime->modify 函数。当我使用 datetime->modify 并添加 1 天时,它给出的结果是 2017 年 4 月 30 日。我知道如果我不使用短月份名称并使用数字(即 01),它会正常工作但我想让它以这种方式使用短月份名称工作。这可能吗?

请参阅下面的代码:

<?php
$date = "21 Jan 2016"; //  this is my date string
$newdate = new DateTime($date ); 
$date2 = $newdate->modify('+1 day'); // add 1 day to date string
echo $date2->format("d-M-Y"); 
?>

结果是:

2017 年 4 月 30 日

想要的结果

2016 年 1 月 22 日

最佳答案

问题是您正在尝试从非 ISO 格式创建 DateTime 对象。这就是那个不起作用的部分。

看看:http://php.net/manual/ro/datetime.createfromformat.php

你需要有类似的东西

DateTime::createFromFormat('d M Y', '21 Jan 2016');

完整示例:

$tomorrow = DateTime::createFromFormat('d M Y', '21 Jan 2016')->modify('+1 day')->format("d-M-Y");
echo($tomorrow);

关于php - 修改 DateTime on Month 短名称格式的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34828322/

相关文章:

php - mysql 和 php 中的日期和时间存储错误

php - JQuery - 复选框未打开

php - 我们的 Centos 服务器感染了一些恶意软件。它正在调用随机 IP/域。如何阻止服务器发出外部请求?

php - 遇到 PHP 错误 严重性 : Core Warning Message: Module 'ffmpeg' already loaded Filename: Unknown Line Number: 0 Backtrace

php - 在 css 和 pdf 中添加分页符

php - 运行 ionic 应用程序时出现无法加载资源:net::ERR_CONNECTION_REFUSED

php - mod_rewrite 不工作 xampp(附图片)

php - 警告:mysql_fetch_assoc()期望参数1为资源, bool 值在[duplicate]中给出

Php数组在相交键之后对关联键进行排序

php - CodeIgniter:My_Lang 中的 get_instance