2011-11-08 33 views
-1

我有這樣的代碼替換的天數時:PHP具有可變

$x = date("Y-m-d", strtotime($post['commissionEligibilityDate'] . "+ " . $post['billingPeriodExpiration'] . " months")) 
$post['commissionEligibilityDate'] = 2011-11-08 <br/> 
$post['billingPeriodExpiration'] = 2 <br/> 

所以$x回報2012-01-08

我有另一個變量$singleDate,它等於1。我正在嘗試用01替換08。我怎樣才能做到這一點?

回答

0
str_replace('08','01',$post['commissionEligibilityDate']); 
0

你可以使用DateTime類:

$d = new DateTime($x); 
$year = $d->format('Y'); 
$month = $d->format('m'); 

$d->setDate($year, $month, '01'); 

echo $d->format('Y-m-d'); 
0
$explode = explode("-",$post['commissionEligibilityDate']); 
$explode[2] = $singleDate; 

$post['commissionEligibilityDate'] = implode("-",$explode); 

$post['commissionEligibilityDate'] will now echo 2011-11-1 
3

您不必使用年月日,可以使用YM-01或您的變量:

$x = date("Y-m-".$singleDate, strtotime($post['commissionEligibilityDate'] . "+ " . $post['billingPeriodExpiration'] . " months")) 
0

PHP幾乎可以做任何事情。我的建議是,如果您只希望從日期中得到一個數字,您可以查看http://php.net/manual/en/function.date.php以查看處理date()輸出的各種方法。由於您可以輕鬆輸出一天然後添加到它$ z = date('d',time())+ 1;例如。

我不確定你對你的日期有什麼特別的做法,但對我來說,這聽起來像你可能對他們是什麼以及如何與他們合作有誤解。基本上它的概念是,變量中定義的日期是一個字符串。無論如何,即使沒有使用date(),你也可以使用它們,然後將它們存儲起來,只要它們在存儲它們時是正確的格式,即yyyy-mm-dd你應該沒問題。