2016-04-20 25 views
0
// to simplify $timestamp in this example is the unix timestamp of 2016-04-20 

考慮這個例子:將相對時間添加到導致同一日期的時間戳?

​​

我怎樣才能使它返回2017-04-20

又如:

strtotime('+1 month', $timestamp); // this returns 2016-05-19 

我怎樣才能使它返回2016-05-20

基本上,我想要相對增加時間,以相同的日期結束。

回答

1
strtotime('+1 day', strtotime('+1 year', $timestamp)); 

1
$date = date("Y",$timestamp) + 1 //gives you the next year 

$date .= "-" . date("m-d",$timestamp) //concantenates on the current month and day 
+0

本質上,使用日期公式將時間戳記打入個別日期部分,然後在將相對時間添加到相關日期部分後重新組合日期。 – Nullsig

1

我可能會誤解你問什麼,但你可能會更好使用DateTime庫內置到PHP的,這是一個很大比標準date()功能更加靈活。

所以,你可以這樣做:

$d = new DateTime(); 
$d->modify('+1 year'); 

echo $d->format('Y-m-d'); // Outputs: 2017-04-20 

如果你想從一個特定的日期創建一個DateTime對象,你可以這樣做:

$d = DateTime::createFromFormat('Y-m-d', '2016-01-01'); 
echo $d->format('Y-m-d'); // Outputs 2016-01-01 

我相信這是你以後,它比date()更乾淨,我個人認爲更容易閱讀。