2013-04-10 110 views
0

我試圖改變顯示的格式「d/M/Y」爲這種格式「DMY」的日期,我寫了下面的代碼:日期操作無法正常工作

//Add $license years to today 
$today = date("j-m-Y"); 
$license = $row_customize['license']; 
$startdate = $row_customize['startdate']; 
list($d,$m,$Y) = explode('/',$startdate); 
$newstartDate = $d."-".$m."-".$Y; 
$enddate= date("j-m-Y", strtotime("$newstartDate +$license years")); 
echo $today; 
echo $enddate; 

$今天顯示正確,但$ enddate在1970年例如1-01-1970顯示我一個日期。

請問我做錯了什麼?

+0

也許不是你的問題,但如果你正在尋找一個明確的日期格式來格式化成,始終使用YMD,DMY不作爲「2013年3月5日」是指「3月5日」,而不是「五月三日」中美國。 – IMSoP 2013-04-10 22:46:07

回答

0

我會把

$newstartDate = $d."-".$m."-".(intval($Y)+intval($license)); 
$enddate= date("j-m-Y", strtotime($newstartDate)); 

我覺得格式"<date> + n years"不允許的strtotime()

+0

仍可顯示1970 – user2209076 2013-04-10 22:25:27

+0

可能是$ license,$ startDate和$ newStartDate的打印值。他們可以幫助您(和/或我們)瞭解發生了什麼問題。 – p91paul 2013-04-10 22:37:56

+0

我印刷的價值,他們都出來正確的預期,除了$ enddate仍然保持1970年 – user2209076 2013-04-10 22:48:38

0

默認的日期爲0,等同於01-01-1970。因此,$ newstartDate和$ license年份都爲0,所以當加在一起時結果仍爲0.所以問題是爲什麼將$ newstartDate和$ license設置爲0.

我覺得像p91paul說你可能無法使用n年。我認爲$ newstartDate可能是不受支持的格式。你可以在函數中使用$ startDate,然後執行格式更改嗎?