Laravel 时间戳
Laravel timestamp
我的数据库中有这些数据
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 site.I 只是想输出一个来自所有日期的特定日期
这是我想要达到的:
2018-03-14
2018-03-17
实现该结果的本机示例 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
如果您的数据是作为字符串检索的,您可以执行以下操作:
<?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;
?>
编辑:
或者如果你想在数据库端完成,你可以只查询日期字段的最小值和最大值。如下回答
希望对您有所帮助:)
就像 Laravel Docs 中显示的那样,您可以对找到的结果使用 unique
方法。
假设您的日期来自用户 table:
DB::table('users')
->where('company', 'Google')
->unique('date')
->values()
->all();
在 Eloquent 模型文件中:
<?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
}
我的数据库中有这些数据
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 site.I 只是想输出一个来自所有日期的特定日期
这是我想要达到的:
2018-03-14
2018-03-17
实现该结果的本机示例 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
如果您的数据是作为字符串检索的,您可以执行以下操作:
<?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;
?>
编辑:
或者如果你想在数据库端完成,你可以只查询日期字段的最小值和最大值。如下回答
希望对您有所帮助:)
就像 Laravel Docs 中显示的那样,您可以对找到的结果使用 unique
方法。
假设您的日期来自用户 table:
DB::table('users')
->where('company', 'Google')
->unique('date')
->values()
->all();
在 Eloquent 模型文件中:
<?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
}