首页 > 编程技术 > php

php时间转换成秒数的例子

发布时间:2016-11-25 14:56

php时间转换成秒数是非常的简单了我们使用了strtotime函数了,我们在这里来为各位介绍一下吧,希望文章能够帮助到大家.


把HH:MM:SS格式的时间字符串转换成秒数,可以使用date_parse函数解析具体的时间信息。

<?php
  $time = '21:30:10';
  $parsed = date_parse($time);
  $seconds = $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];
  echo $seconds;
?>

更详细的例子

转换成多少天/多少小时/多少分

function get_stay_time($timestamp, $is_hour = 1, $is_minutes = 1)
{
    $CI =& get_instance();

    if(empty($timestamp) || $timestamp <= 60) {
        return false;
    }

    $time = time();
    $remain_time = $time - $timestamp;

    $day = floor($remain_time / (3600*24));
    $day = $day > 0 ? $day.'天' : '';
    $hour = floor(($remain_time % (3600*24)) / 3600);
    $hour = $hour > 0 ? $hour.'小时' : '';
    if($is_hour && $is_minutes) {
        $minutes = floor((($remain_time % (3600*24)) % 3600) / 60);
        $minutes = $minutes > 0 ? $minutes.'分' : '';
        return $day.$hour.$minutes;
    }

    if($hour) {
        return $day.$hour;
    }
    return $day;
}

PHP7下安装Emlog5有朋友听了会觉得其怪了这个和php 7有什么关系呢,其实这个当然是有的了,下面我们就一起来看看关于PHP7下安装Emlog5.3.1的笔记吧。

PHP7出来一段时间了,据说PHP7可以性能翻倍。而且我的服务器上也已经开通了PHP7,就开始折腾下Emlog5.3.1。
直接在php7安装emlog5.3.1各种报错。emlog5.3.1虽然已经出了使用mysqli连接类,但是为了兼容性还是默认是使用了mysql。因为PHP7已经不支持mysql扩展了,但是支持mysqli和pdo_mysql。所以这里还是介绍如何使用mysqli来安装emlog。

以下是修改emlog安装程序,无报错安装。如果是实际环境请在本地环境模拟后成功后再更换。

1、修改include\lib\option.php,大概11行修改为mysqli
 //默认MySQL链接方式,mysql或mysqli
 const DEFAULT_MYSQLCONN = 'mysql';
改为
 const DEFAULT_MYSQLCONN = 'mysqli';//默认链接方式改为mysqli

2、修改include\lib\database.php,大概16行删除default:
            case 'mysql':
            default ://这边需要删除default:
3、修改include\lib\cache.php,大概195行加大括号
    $$row['option_name'] = $row['option_value'];
改为
   ${$row['option_name']} = $row['option_value'];

PS:暂时就发现这么些地方要修改的,还有部分插件写死了数据库链接方式。需要修改,不然直接报数据库错误。
比如:$DB = MySql::getInstance();改为$DB = Database::getInstance();等等。

2.jpg

date_parse函数小编是头一次接触了,今天我们来为各位介绍一篇关于date_parse函数的使用例子,具体的笔记如下所示.


date_parse() 函数返回一个包含指定日的详细信息的关联数组。如果成功则返回包含被解析日期信息的关联数组,如果失败则返回 FALSE。可以解析的参数和strtotime()支持的参数相同。

定义和用法

date_parse() 函数返回一个包含指定日的详细信息的关联数组。

语法

date_parse(date);

参数 描述
date 必需。规定日期(格式由 strtotime() 接受)。
技术细节
返回值: 如果成功则返回包含被解析日期信息的关联数组,如果失败则返回 FALSE。
PHP 版本: 5.2+

<?php
print_r(date_parse("2016/1/11 10:05:50"));
?>

输出:

Array
(
    [year] => 2016
    [month] => 1
    [day] => 11
    [hour] => 10
    [minute] => 5
    [second] => 50
    [fraction] => 0
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] =>
)

Closure 类(PHP 5 >= 5.3.0)简介 用于代表 匿名函数 的类. 匿名函数(在 PHP 5.3 中被引入)会产生这个类型的对象,下面我们来看一下PHP Closure类的使用方法及介绍。

PHP Closure类之前在PHP预定义接口中介绍过,但它可不是interface哦,它是一个内部的final类。Closure类是用来表示匿名函数的,所有的匿名函数都是Closure类的实例。


$func = function() {
    echo 'func called';
};
 
var_dump($func); //class Closure#1 (0) { }
 
$reflect =new ReflectionClass('Closure');
 
var_dump(
    $reflect->isInterface(), //false
    $reflect->isFinal(), //true
    $reflect->isInternal() //true
);

Closure类结构如下:
Closure::__construct — 用于禁止实例化的构造函数
Closure::bind — 复制一个闭包,绑定指定的$this对象和类作用域。
Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。

看一个绑定$this对象和作用域的例子:

class Lang
{
    private $name = 'php';
}
 
$closure = function () {
    return $this->name;
};
 
$bind_closure = Closure::bind($closure, new Lang(), 'Lang');
 
echo $bind_closure(); //php

另外,PHP使用魔术方法__invoke()可以使类变成闭包:

class Invoker {
    public function __invoke() {return __METHOD__;}
}
$obj = new Invoker;
 
echo $obj(); //Invoker::__invoke

session删除清空是很讲究了如果我们定义好可以清除指定变量否则不小心会把所有session都清除掉了,下面我们来看一些总结。


1、unset($_SESSION['xxx']) 删除单个session,unset($_SESSION['xxx']) 用来unregister一个已注册的session变量。其作用和session_unregister()相同。


session_unregister()在PHP5中已经废弃。

<?php

         // 初始化session.

         session_start();

         /*** 删除所有的session变量..也可用unset($_SESSION[xxx])逐个删除。****/

         $_SESSION = array();

         /***删除sessin id.由于session默认是基于cookie的,所以使用setcookie删除包含session id的cookie.***/

         if (isset($_COOKIE[session_name()])) {

               setcookie(session_name(), '', time()-42000, '/');

          }

         // 最后彻底销毁session.

         session_destroy();

?>

 

unset($_SESSION) 此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_session变量。

 

2、session_unset() 或者 $_SESSION=array() 删除多个session

3、session_destroy()结束当前的会话,并清空会话中的所有资源。该函数不会unset(释放)和当前session相关的全局变量(globalvariables),也不会删除客户端的session cookie.PHP默认的session是基于cookie的,如果要删除cookie的话,必须借助setcookie()函数。

 

总结:

 

session_destroy是注销所有的session变量,并且结束session会话;

如果希望删除一些session数据,则可以使用unset()函数或session_destroy()函数。unset()函数的作用是释放指定的session变量,调用格式如下:

<?php

unset($_SESSION['jugelizi']);

?>


session_destroy()函数的作用是将session全部删除,调用格式如下:

<?PHP session_destroy(); ?>

提示:session_destroy()会重新设置session,你会丢失所有已保存的session数据。

session_unset()并不注销session变量,但把所有的session变量的值清空。

标签:[!--infotagslink--]

您可能感兴趣的文章: