2016-10-04 54 views
0
$date = "2016-10-04"; 
    $date1 = str_replace('-', '/', $date); 
    $tomorrow = date('y-m-d',strtotime($date1 . "+1 days")); 

    echo $tomorrow; 

使用上面的php代码添加一天给定的值。最后它返回16-10-05。但2016-10-05全年我需要它。我如何得到它?如何从yy/mm/dd获取yyyy/mm/dd日期格式?

+3

将y更改为date()以及为什么使用str_replace()不需要该类型转换 –

+0

@RakeshSojitra它可以工作。大 – isuru

+1

我强烈建议改为使用'DateTime'类,如下面的@masterFly所示。 – ChristianF

回答

3

试试这个,使用 'Y' 不是 'Y'

$date = "2016-10-04"; 
$date1 = str_replace('-', '/', $date); 
$tomorrow = date('Y-m-d',strtotime($date1 . "+1 days")); 

echo $tomorrow; 

DEMO

3

对于全年利用 'Y',而不是 'Y'

$date = "2016-10-04"; 
$date1 = str_replace('-', '/', $date); 
$tomorrow = date('Y-m-d',strtotime($date1 . "+1 days")); 

echo $tomorrow; 
2

您需要在日期函数中将'y-m-d'更改为'Y-m-d'。

Y - A four digit representation of a year 
y - A two digit representation of a year 

参考链接:http://www.w3schools.com/php/func_date_date_format.asp

试试下面的代码:

$date = "2016-10-04"; 
$date1 = str_replace('-', '/', $date); 
$tomorrow = date('Y-m-d',strtotime($date1 . "+1 days")); 

echo $tomorrow; 
2

它始终是更好地使用DateTime。以下应该工作!

$date = new DateTime("2016-10-04"); 
$interval = new DateInterval('P1D'); 
echo $date->add($interval)->format("Y-m-d"); 

注意:你可以摆脱$date1 = str_replace('-', '/', $date);这似乎对我来说是不必要的。

您可以从PHP手册中了解关于DateTime和DateInterval的更多信息。

干杯!

+1

你甚至不需要在这一个上使用'DateInterval',因为'$ date-> modify('+1 day')'完美地工作。 ;) – ChristianF

+0

@ChristianF,感谢您的评论!我之前没有使用'modify'。它的工作原理!更简单!谢谢!!! – masterFly

+0

不客气。很高兴我能帮上忙。 :) – ChristianF

相关问题