PHP用变量替换日期号

时间:2011-11-08 22:25:07

标签: php date

我有这段代码:

$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。我要做的是用08替换01。我怎么能这样做?

5 个答案:

答案 0 :(得分:3)

您不必使用Y-m-d,您可以使用Y-m-01或您的变量:

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

答案 1 :(得分:1)

您可以使用DateTime类:

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

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

echo $d->format('Y-m-d'); 

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

PHP几乎可以做任何事情。我的建议是,您希望只从您考虑签出http://php.net/manual/en/function.date.php的日期中获取一个数字,以查看处理date()输出的各种方法。由于您可以轻松输出一天,然后添加到它$ z = date(&#39; d&#39;,time())+ 1;例如。

我不确定你对日期的具体做法是什么,但对我来说,听起来你可能误解了它们是什么,以及如何使用它们。基本上它的简短概念是,变量中定义的日期是一个字符串。即使没有使用date()然后存储它们,你也可以随意制作它们,只要它们在你存储时它们的格式正确即yyyy-mm-dd你应该没问题。