Nir*_*paz 14 php datetime laravel
我正在使用Laravel.我刚刚遇到Carbon供应商文件夹中已有的内容.我做了一些快速搜索,发现它是PHP日期时间的一个很好的扩展.
在我的应用程序的某个地方,我需要一个逻辑来检查给定时间是否落在两个时间点之间.让我们说,我想检查10:00是否落在时间9:55和10:05之间.当然,它会下降,但我应该如何在Carbon的帮助下使用这种逻辑.
默认情况下,Carbon::now()将以2014-12-02 14:37:18格式返回日期和时间.我在想是否只能提取时间部分,14:37:18然后我可以比较两次,以了解测试时间是否属于两个时间点.
如果我直接检查两个Carbon对象,它也会尝试检查年份.但我所需要的只是时间部分.
事实上,我甚至不确定如果时间(h:m:s)可以直接通过碳进行比较.
Kys*_*lik 20
是的,有一种方法可以在Carbon中执行此操作,只需在此处查看文档即可.
要确定当前实例是否在两个其他实例之间,您可以使用恰当命名的between()方法.第三个参数表示是否应该进行等于比较.默认值为true,用于确定其是否在边界之间或等于边界.
$first = Carbon::create(2012, 9, 5, 1);
$second = Carbon::create(2012, 9, 5, 5);
var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second)); // bool(true)
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second)); // bool(true)
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false)); // bool(false)
Run Code Online (Sandbox Code Playgroud)
UNIX 时间对于此类任务来说更容易。
因此,您可以使用 strtotime 将您的嬉皮士表示转换为颈胡子表示,并像真正的男人一样进行比较。由于您只想比较时间,因此您可以使用相对时间来解决这个问题。
<?php
$now = time();
$startTime = strtotime( "12:10:24", $now );
$endTime = strtotime( "14:24:45", $now );
$point = strtotime("12:25:40", $now );
if( $point >= $startTime && $point <= $endTime )
{
echo "Inside\n";
} else {
echo "Outside\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
输出:
$ php test.php 2> /dev/null
Inside
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11488 次 |
| 最近记录: |