Метка времени Ларавела - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть эти данные в моей базе данных

2018-03-14 01:22:48 
2018-03-14 01:22:44 
2018-03-14 01:22:40 
2018-03-14 01:22:36 
2018-03-14 01:22:32 
2018-03-14 01:22:28
2018-03-17 01:22:28

и я использую Laravel на своем веб-сайте. Я просто хотел вывести одну отдельную дату из всех дат

это я хочу достичь:

2018-03-14
2018-03-17

Ответы [ 4 ]

0 голосов
/ 01 мая 2018

В файле Eloquent Model:

<?php // User.php for example

class User extends Model {

    protected $casts = [
        'dateColumn' => 'date',
    ];

    // You can now use $user->dateColumn and you will get back dates
    // $user->dateColumn->format('Y-m-d'); // 2018-03-14

}
0 голосов
/ 30 апреля 2018

Если ваши данные извлекаются в виде строки, вы можете сделать следующее:

<?php
$datesString = "2018-03-14 01:22:48 2018-03-14 01:22:44 2018-03-14 01:22:40 2018-03-14 01:22:36 2018-03-14 01:22:32 2018-03-14 01:22:28 2018-03-17 01:22:28";
$datesArray = [];
$dateTimeArray = explode(" ", $datesString);
foreach($dateTimeArray as $index=>$date) {
    if($index % 2 == 0) {
        $datesArray[] = $date;
    }
}

$firstDate = $datesArray[0];
$lastDate = $datesArray[sizeOf($datesArray)-1];

echo $firstDate." - ".$lastDate;
?>

Если ваши данные извлекаются в виде массива, вы можете сделать следующее:

<?php
$dateTimeArray  = [
    "2018-03-14 01:22:48", 
    "2018-03-14 01:22:44", 
    "2018-03-14 01:22:40", 
    "2018-03-14 01:22:36",
    "2018-03-14 01:22:32",
    "2018-03-14 01:22:28", 
    "2018-03-17 01:22:28"
];

$datesArray = [];

foreach($dateTimeArray as $dateTime) {
   $datesArray[] = explode(" ", $dateTime)[0];
}

$firstDate = $datesArray[0];
$lastDate = $datesArray[sizeOf($datesArray)-1];

echo $firstDate." - ".$lastDate;
?>

Edit:

или, если вы хотите, чтобы это было сделано на стороне базы данных, вы можете просто запросить минимальное и максимальное значения поля даты. как ответили в следующем вопрос

Надеюсь, это поможет:)

0 голосов
/ 01 мая 2018

Как показано здесь в Документах Laravel , вы использовали бы метод unique для найденных результатов.

Допустим, ваши даты приходят из таблицы пользователей:

DB::table('users')
  ->where('company', 'Google')
  ->unique('date')
  ->values()
  ->all();
0 голосов
/ 30 апреля 2018

Пример собственного SQL, который достиг бы этого результата:

 SELECT DATE(t.mycol) AS mycol 
   FROM mytable t
  GROUP
     BY DATE(t.mycol)

Существуют другие шаблоны запросов, которые могли бы достичь того же результата, например:

 SELECT DISTINCT DATE(t.mycol) AS mycol 
   FROM mytable t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...