Je veux obtenir des enregistrements totaux du mois en cours et comparer chaque date avec la colonne créée_at. Si des enregistrements disponibles pour une date donnée, affichez ces enregistrements. J'ai commencé et endormi et je souhaite afficher des enregistrements de chaque jour comparer à la date de chaque jour, puis si les enregistrements sont disponibles, puis affichez. Comment faire ça. J'ai essayé avec une question. Mais, il ne fonctionne pas.
//Display TAT Reports
public function reports() {
//Each date from current month
for ($i = 1; $i <= date('t'); $i++)
{
$dates[] = date('Y') . "-" . date('m') . "-" . str_pad($i, 2, '0',STR_PAD_LEFT);
}
$now = Carbon::now();
$monthStartDate = $now->startOfMonth()->format('Y-m-d'); //start date of month
$monthendDate = $now->endOfMonth()->format('Y-m-d'); //enddate of month
$recordsOnMonthlyBasis = DB::table('pickups')->select('tat', 'completed_at')
->whereNotNull('tat')
->whereDate('completed_at', '>=', "$monthStartDate")
->whereDate('completed_at', '<=', "$monthendDate")->get()->toArray();
}
3 Réponses :
Vous pouvez ajouter cette requête pour obtenir des enregistrements quotidiens.
DB::table('pickups')->where(DB::raw("(DATE_FORMAT(completed_at,'%Y-%m-%d'))"), '=', Carbon::today()->format('Y-m-d'));
Merci de répondre. Mais cela comparera la journée en cours.
changer la requête.
$now = Carbon::now();
$monthStartDate = $now->startOfMonth()->format('Y-m-d'); //start date of month
$monthendDate = $now->endOfMonth()->format('Y-m-d'); //enddate of month
$recordsOnMonthlyBasis = DB::table('pickups')->select('tat', 'completed_at')
->whereNotNull('tat')
->whereBetween('completed_at',[$monthStartDate,$monthendDate])
->get()->toArray();
Essayez avec cela,
$fromDate1 = \Carbon\Carbon::parse($fromDate);
$toDate1 = \Carbon\Carbon::parse($toDate);
for ($fromDate1; $fromDate1 <= $toDate1; $fromDate1->addDays(1)) {
// Your code
}
Qu'entendez-vous par "Je veux des enregistrements de chaque jour de comparer avec la date à DB" B> Pouvez-vous préciser avec un exemple.
@Raka sûr. Disons. J'ai commencé = "01/06/2019" et enddate = "30/06/2019". Dans la table de base de données, j'ai des enregistrements pour le 05/06/2019, 07/06 / 2019,23/06/2019 et tant pour d'autres dates. Donc, j'ai besoin de comparer les dates situées entre la date de début et la fin de manière à pouvoir obtenir les enregistrements de 05,07,23 et ainsi de suite.
Vous n'avez pas vraiment de date de début du 01/06/2019, n'est-ce pas? On espère que vous passerez une date de début de '2019-06-01' !! Incidemment, s'il s'agit de MySQL, étiquetez-le comme tel, et voir meta.stackoverflow.com/questions/333952/...
@Strawberry mec j'ai Date de début et date de fin. Veuillez vérifier que j'ai utilisé startofminth ()
Je vous suggère de fournir des données d'échantillons et un résultat souhaité correspondant (comme toujours)
@Strowberry: - Si j'imprime cette requête: - $ mois de mecartdate = $ maintenant-> startofminth () -> format ('y-m-d'); // Date de début du mois, alors je reçois "2019-06-01" de même, je me retrouve aussi.