2017-01-07 11 views
0

私は、現在の日付を変更したいか、私はこのような現在の日付で変数を入れたい:どのように私は現在の日付を変更できますか?

$companyDates = $company_dates['dates']; //this variable come from DataBase 
$databaseDate=DateTime::createFromFormat("Y-m-d", $companyDates); 
$day=$databaseDate->format('d'); // this is how i take just days from date format(y-m-d) 

$dt = new DateTime(); 
$today = $dt->format('Y-m-d'); 
$oldDate=$dt->format('Y-m-$day'); // here i want days from database into current day month and year. 

、その後、私はこのような別の日を見つけたい:

$date1=date_create($today); 
$date2=date_create($oldDate); 
$diff=date_diff($date1,$date2); 

が可能。この場合、またはこのです私のやり方は正しい?

答えて

1

これを試してみてください:使用setDate

$day=10; 
$dt = new DateTime(); 
$today = $dt->format('Y-m-d'); 
$out = new DateTime(); 
$out->setDate($out->format('Y'), $out->format('m'), $day); 
$oldDate= $out->format('Y-m-d'); 
$d1=new DateTime($oldDate);$d2=new DateTime($today); 
$difference = $d1->diff($d2); 
echo $difference->format('%r%a days'); 
+0

は私の友人、その作業完璧@Suchit – AboYousef16

+0

@ AboYousef16ご歓迎ありがとうございます。 –

1

あなたはフォーマット

$oldDate=$dt->format('Y-m-$day'); 

の内側に希望日に合格しようとしていることは間違っている形式だ(とあなたが変数に文字列を連結したい場合は、二重quote(")の代わりsingle(')を使用する必要があります)

setDate()メソッドを使用しますの代わりに。

$today = new DateTime(); 
$oldDate = clone $today; // Clone instead creating new instance because two different DateTime instances may have different dates 
$oldDate->setDate($oldDate->format('Y'), $oldDate->format('m'), $day); 
関連する問題