php 怎么判断一天打卡的第一个时间和最后的时间

2014-11-19 8:10 黄燕华

2014-11-19 17:37 黄燕华

2014-11-19 17:38 黄燕华

没必要自己判断,系统有读取本月天数的函数date('t')。这个要是不对,你砍我!调试过!

$y=date("Y",time());
$m=date("m",time());
$d=date("d",time());
$t0=date('t'); // 本月一共有几天
$t1=mktime(0,0,0,$m,1,$y); // 创建本月开始时间
$t2=mktime(23,59,59,$m,$t0,$y); // 创建本月结束时间
echo "今天时间\t".date("Y-m-d",time())."<br>";
echo "本月开始\t".date("Y-m-d H:i:s",$t1)."<br>";
echo "本月结束\t".date("Y-m-d H:i:s",$t2)."<br>";
echo "时间差:";
echo $t2-$t1."<br>";追问

我现在只想取一天中的最先打卡时间和最后打卡的时间,如何取

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-10
<?php
    $arr = array(
        '2014-11-19 08:10 黄燕华',
        '2014-11-19 17:37 黄燕华',
        '2014-11-19 17:38 黄燕华',
        '2014-11-19 07:32 李四',
        '2014-11-19 10:30 李四',
        '2014-11-19 17:38 李四',
    );
    
    $groupByName = array();
    foreach($arr as $item) {
        $parts  = explode(" ", $item);
        $time   = "{$parts[0]} {$parts[1]}";
        $name   = $parts[2];
        
        if(!isset($groupByName[$name])) {
            $groupByName[$name] = array();
        }
        
        $groupByName[$name][] = strtotime($time);
    }
    
    $result = array();
    foreach($groupByName as $name => $times) {
        sort($times);
        $result[$name] = array(
            'min'   => date('Y-m-d H:i:s', array_shift($times)),
            'max'   => date('Y-m-d H:i:s', array_pop($times)),
        );
    }
    
    var_dump($result);

//End_php

本回答被提问者采纳
第2个回答  2017-01-06
判断打卡了,如果打了,用now()函数生成一个时间戳,存储到cookie中
判断第二次打卡,再次生成一个时间戳,也存到cookie中
如果需要使用,直接date()函数格式化时间戳就行了
第3个回答  2016-12-02
有个创建时间,有个修改时间 第一次打卡为创建 以后为修改
当然有些公司是每次都记录 但是都是两两配对的 前面日期只写年月日
第4个回答  2015-04-10
你这些数据是在数据库里面的吗,用下面的SQL查询:
select 姓名,min(打卡时间),max(打卡时间) from 表名 group by 姓名追问

不是,我是导入了一个contacts.csv这样的表格