php转换时间戳的一些方法

<?php
echo strtotime(date('Y-m-d'));

获取今天凌晨的时间戳
strtotime(date('Y-m-d',time()));

获取明天凌晨的时间戳
代码:echo strtotime(date('Y-m-d',strtotime('+1 day')));

附上测试代码:
echo strtotime('2012-11-2');
echo strtotime('2012-11-2 00:00:00');
echo strtotime(date('Y-m-d')),'
';
echo date('Y-m-d H:i:s',strtotime(date('Y-m-d')));
echo strtotime(date('Y-m-d',strtotime('+1 day')));
echo ( strtotime(date('Y-m-d',strtotime('+1 day'))) - strtotime(date('Y-m-d')) )/3600;

其它参考代码:

echo "一周后:".date("Y-m-d",strtotime("+1 week"));
echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds"));
echo "下个星期四:".date("Y-m-d",strtotime("next Thursday"));
echo "上个周一:".date("Y-m-d",strtotime("last Monday"));
echo "一个月前:".date("Y-m-d",strtotime("last month"));
echo "一个月后:".date("Y-m-d",strtotime("+1 month"));
echo "十年后:".date("Y-m-d",strtotime("+10 year"));



echo "今天:".date("Y-m-d")."<br>";
echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>";
echo "明天:".date("Y-m-d",strtotime("+1 day")). "<br>";
echo "一周后:".date("Y-m-d",strtotime("+1 week")). "<br>";
echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")). "<br>";
echo "下个星期四:".date("Y-m-d",strtotime("next Thursday")). "<br>";
echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<br>";
echo "一个月前:".date("Y-m-d",strtotime("last month"))."<br>";
echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<br>";
echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<br>";



  //php获取今日开始时间戳和结束时间戳
  $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
  $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
  //php获取昨日起始时间戳和结束时间戳
  $beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
  $endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
  //php获取上周起始时间戳和结束时间戳
  $beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
  $endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
  //php获取本月起始时间戳和结束时间戳
  $beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
  $endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
  mktime() 函数用于返回一个日期的 Unix 时间戳。


            date('w',time());
            switch (date('w',time())) {
                case '0':
                    $week = '星期天';
                    break;
                case '1':
                    $week = '星期一';
                    break;
                case '2':
                    $week = '星期二';
                    break;
                case '3':
                    $week = '星期三';
                    break;
                case '4':
                    $week = '星期四';
                    break;
                case '5':
                    $week = '星期五';
                    break;
                default:
                    $week = '星期六';
                    break;
            }
    private static String getWeek(long timeStamp) {
        int mydate = 0;
        String week = null;
        Calendar cd = Calendar.getInstance();
        cd.setTime(new Date(timeStamp));
        mydate = cd.get(Calendar.DAY_OF_WEEK);
        // 获取指定日期转换成星期几
        if (mydate == 1) {
            week = "周日";
        } else if (mydate == 2) {
            week = "周一";
        } else if (mydate == 3) {
            week = "周二";
        } else if (mydate == 4) {
            week = "周三";
        } else if (mydate == 5) {
            week = "周四";
        } else if (mydate == 6) {
            week = "周五";
        } else if (mydate == 7) {
            week = "周六";
        }
        return week;




/**
 *      把秒数转换为时分秒的格式
 *      @param Int $times 时间,单位 秒
 *      @return String
 */
function secToTime($times){
        $result = '00:00:00';
        if ($times>0) {
                $hour = floor($times/3600);
                $minute = floor(($times-3600 * $hour)/60);
                $second = floor((($times-3600 * $hour) - 60 * $minute) % 60);
                $result = $hour.':'.$minute.':'.$second;
        }
        return $result;
}




             function T($time)
        {
           //获取今天凌晨的时间戳
           $day = strtotime(date('Y-m-d',time()));
           //获取昨天凌晨的时间戳
           $pday = strtotime(date('Y-m-d',strtotime('-1 day')));
           //获取现在的时间戳
           $nowtime = time();

           //获取昨天凌晨的时间戳
           $threeday = strtotime(date('Y-m-d',strtotime('-3 day')));

           //获取一周前的时间:
          $weekTime=mktime(0, 0, 0, date('m'), date('d')-1, date('Y'));//获取时间戳

           //获取前半年的时间:
          $halfYear=mktime(0, 0, 0, date('m')-6, date('d'), date('Y'));//获取时间戳

          //时间戳差值
           $tc = $nowtime-$time;

           if($time<$pday && $time>$threeday){
              $str = "三天前";
           }elseif($time<$day && $time>$pday){
            //一天前
              $str = "一天前";
           }elseif($time<$day && $time>$weekTime){
            //少于当天的时间戳,大于一周的时间戳
              $str = "一周前";
           }elseif($time<$weekTime && $time>$halfYear){
            //少于一周前的时间戳,大于半年的时间戳
              $str = "半年前";
           }

           elseif($tc>60*60){
              $str = floor($tc/(60*60))."小时前";
           }

           // elseif($tc>60){
           //    $str = floor($tc/60)."分钟前";
           // }
           else{
             $str = floor($tc/60)."分钟前";
           }
           return $str;
        }


/**
* 传入日期格式或时间戳格式时间,返回与当前时间的差距,如1分钟前,2小时前,5月前,3年前等
* @param string or int $date 分两种日期格式"2013-12-11 14:16:12"或时间戳格式"1386743303"
* @param int $type
* @return string
*/
function formatTime($date = 0, $type = 1) { //$type = 1为时间戳格式,$type = 2为date时间格式
    date_default_timezone_set('PRC'); //设置成中国的时区
    switch ($type) {
        case 1:
            //$date时间戳格式
            $second = time() - $date;
            $minute = floor($second / 60) ? floor($second / 60) : 1; //得到分钟数
            if ($minute >= 60 && $minute < (60 * 24)) { //分钟大于等于60分钟且小于一天的分钟数,即按小时显示
                $hour = floor($minute / 60); //得到小时数
            } elseif ($minute >= (60 * 24) && $minute < (60 * 24 * 30)) { //如果分钟数大于等于一天的分钟数,且小于一月的分钟数,则按天显示
                $day = floor($minute / ( 60 * 24)); //得到天数
            } elseif ($minute >= (60 * 24 * 30) && $minute < (60 * 24 * 365)) { //如果分钟数大于等于一月且小于一年的分钟数,则按月显示
                $month = floor($minute / (60 * 24 * 30)); //得到月数
            } elseif ($minute >= (60 * 24 * 365)) { //如果分钟数大于等于一年的分钟数,则按年显示
                $year = floor($minute / (60 * 24 * 365)); //得到年数
            }
            break;
        case 2:
            //$date为字符串格式 2013-06-06 19:16:12
            $date = strtotime($date);
            $second = time() - $date;
            $minute = floor($second / 60) ? floor($second / 60) : 1; //得到分钟数
            if ($minute >= 60 && $minute < (60 * 24)) { //分钟大于等于60分钟且小于一天的分钟数,即按小时显示
                $hour = floor($minute / 60); //得到小时数
            } elseif ($minute >= (60 * 24) && $minute < (60 * 24 * 30)) { //如果分钟数大于等于一天的分钟数,且小于一月的分钟数,则按天显示
                $day = floor($minute / ( 60 * 24)); //得到天数
            } elseif ($minute >= (60 * 24 * 30) && $minute < (60 * 24 * 365)) { //如果分钟数大于等于一月且小于一年的分钟数,则按月显示
                $month = floor($minute / (60 * 24 * 30)); //得到月数
            } elseif ($minute >= (60 * 24 * 365)) { //如果分钟数大于等于一年的分钟数,则按年显示
                $year = floor($minute / (60 * 24 * 365)); //得到年数
            }
            break;
        default:
            break;
    }
    if (isset($year)) {
        return $year . '年前';
    } elseif (isset($month)) {
        return $month . '月前';
    } elseif (isset($day)) {
      if($day>6){
        return '一周前';
      }elseif($day>1 && $day<3){
           return '一天前';
      }else{
           return '三天前';
      }
    } elseif (isset($hour)) {
        return $hour . '小时前';
    } elseif (isset($minute)) {
        return $minute . '分钟前';
    }
  
  获取第几周
     $first_day = date('Y-m-01', strtotime(date("Y-m-d")));
 	echo date("W") - date('W',strtotime($first_day)) + 1;

 	有两个已知时间戳。判断该时间戳内是否包含周六周天。
/**
 *判断时间段是否有周末。原创,更多请访问:www.ichasem.com
 * @author winter
 * @version 2015年10月10日17:36:27
 * @param begin 开始时间
 * @param last 结束时间
 * @return 1有 0没有
 */

public function isWeek($begin,$last){
        $span = intval($last-$begin);
        if($span >= 604800){
            return 1;
        }else if($span > 0){
            $lWeek = date(‘w’,$last);
            $bWeek = date(‘w’,$begin);
            if($lWeek == 6 || $lWeek == 0 || $bWeek == 6 || $bWeek == 0){
                return 1;
            }else{
                if($bWeek > $lWeek){
                    return 1;
                }else{
                    return 0;
                }
            }
        }

    }

/**
 *
+--------------------------------------------------------------------
 * Description 友好显示时间
+--------------------------------------------------------------------
 * @param int $time 要格式化的时间戳 默认为当前时间
+--------------------------------------------------------------------
 * @return string $text 格式化后的时间戳
+--------------------------------------------------------------------
 * @author yijianqing
+--------------------------------------------------------------------
 */
function mdate($time = NULL) {
    $text = '';
    $time = $time === NULL || $time > time() ? time() : intval($time);
    $t = time() - $time; //时间差 (秒)
    if ($t == 0)
        $text = '刚刚';
    elseif ($t < 60)
        $text = $t . '秒前'; // 一分钟内
    elseif ($t < 60 * 60)
        $text = floor($t / 60) . '分钟前'; //一小时内
    elseif ($t < 60 * 60 * 24)
        $text = floor($t / (60 * 60)) . '小时前'; // 一天内
    elseif ($t < 60 * 60 * 24 * 3)
        $text = floor($t/(60*60*24)) ==1 ?'昨天 ' . date('H:i', $t) : '前天 ' . date('H:i', $time) ; //昨天和前天
    elseif ($t < 60 * 60 * 24 * 30)
        $text = date('m月d日 H:i', $time); //一个月内
    elseif ($t < 60 * 60 * 24 * 365)
        $text = date('m月d日', $time); //一年内
    else
        $text = date('Y年m月d日', $time); //一年以前
    return $text;
}
{$vo.time|mdate}








  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值