Bugün ile başlayan bir dizi oluşturmaya çalışıyorum ve son 30 güne PHP ile geri dönüyorum ve sorun yaşıyorum. Tahmin edebilirim, ancak bunu yapmanın iyi bir yolunu bilmiyorum ve önceki aydaki günlerin sayısını hesaba katıyorum. Kimsenin iyi bir çözümü var mı? Yaklaşamam ama% 100 doğru olduğundan emin olmalıyım.PHP Kullanarak Son 30 Gün İçinde Bir Dizi Oluşturun
cevap
bu deneyin:
<?php
$d = array();
for($i = 0; $i < 30; $i++)
$d[] = date("d", strtotime('-'. $i .' days'));
?>
Günleri kontrol için zaman kullanabilirsiniz: döngü için size istediğiniz ne olursa olsun amaçları için $ the_date değişkeni kullanabilirsiniz dahilinde, Şimdi
for ($i = 0; $i < 30; $i++)
{
$timestamp = time();
$tm = 86400 * $i; // 60 * 60 * 24 = 86400 = 1 day in seconds
$tm = $timestamp - $tm;
$the_date = date("m/d/Y", $tm);
}
. :-) geçmiş X günlük satış göstermek isteyenler için
Pedrin, zaman kullanarak bu yönteme dikkat edin. Bunu yapardım, sonra farkettim. Gün ışığından yararlanma saati ile belirli zamanlarda doğru bir şekilde hesaplanmayacaktır. Bunun yerine strtotime işlevini kullanmanızı öneriyorum. -Matt – Matt
Bir $ i ++ öncesinde eksiksiniz. :) –
$d = array();
for($i = 0; $i < 30; $i++)
array_unshift($d,strtotime('-'. $i .' days'));
,
As asked in this closed question (https://stackoverflow.com/questions/11193191/how-to-get-last-7-days-using-php#=), bu benim için çalıştı.
$sales = Sale::find_all();//the sales object or array
for($i=0; $i<7; $i++){
$sale_sum = 0; //sum of sale initial
if($i==0){
$day = strtotime("today");
} else {
$day = strtotime("$i days ago");
}
$thisDayInWords = strftime("%A", $day);
foreach($sales as $sale){
$date = strtotime($sale->date_of_sale)); //May 30th 2018 10:00:00 AM
$dateInWords = strftime("%A", $date);
if($dateInWords == $thisDayInWords){
$sale_sum += $sale->total_sale;//add only sales of this date... or whatever
}
}
//display the results of each day's sale
echo $thisDayInWords."-".$sale_sum; ?>
}
Kızgın olsun önce
: Ben bu soruya burada yönetilmiştir birine yardım etmek için bu cevabı yerleştirilir. Orada cevap olamaz :(
$ d [] için değil, $ d [] için atanan tarihin kastettiğini düşünüyorum. – Matt
Matt: Hayır $ d [] daha iyi. – OIS
bilmiyorum, what '$ d []' burada dizinin sonuna bir sonuç ekliyor – Ren