LINUX 系统参数探测包括cpu,时间,内存等

 更新时间:2016年11月25日 16:28  点击:1639
这款linux系统参数探测函数,可以计算出你当前机器的cpu是多少,内存多使用了多少,运行时间以及更新时间

    function sys_linux()
    {
        // CPU
        if (false === ($str = @file("/proc/cpuinfo"))) return false;
        $str = implode("", $str);
        @preg_match_all("/models+names{0,}:+s{0,}([ws)(.]+)[ ]+/", $str, $model);
        //@preg_match_all("/cpus+MHzs{0,}:+s{0,}([d.]+)[ ]+/", $str, $mhz);
        @preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[A-Z]+[ ]+)/", $str, $cache);
        if (false !== is_array($model[1]))
            {
            $res['cpu']['num'] = sizeof($model[1]);
            for($i = 0; $i < $res['cpu']['num']; $i++)
            {
                $res['cpu']['detail'][] = "类型:".$model[1][$i]." 缓存:".$cache[1][$i];
            }
            if (false !== is_array($res['cpu']['detail'])) $res['cpu']['detail'] = implode("<br />", $res['cpu']['detail']);
            }
        
        
        // UPTIME
        if (false === ($str = @file("/proc/uptime"))) return false;
        $str = explode(" ", implode("", $str));
        $str = trim($str[0]);
        $min = $str / 60;
        $hours = $min / 60;
        $days = floor($hours / 24);
        $hours = floor($hours - ($days * 24));
        $min = floor($min - ($days * 60 * 24) - ($hours * 60));
        if ($days !== 0) $res['uptime'] = $days."天";
        if ($hours !== 0) $res['uptime'] .= $hours."小时";
        $res['uptime'] .= $min."分钟";
        
        // MEMORY
        if (false === ($str = @file("/proc/meminfo"))) return false;
        $str = implode("", $str);
        preg_match_all("/MemTotals{0,}:+s{0,}([d.]+).+?MemFrees{0,}:+s{0,}([d.]+).+?SwapTotals{0,}:+s{0,}([d.]+).+?SwapFrees{0,}:+s{0,}([d.]+)/s", $str, $buf);
        
        $res['memTotal'] = round($buf[1][0]/1024, 2);
        $res['memFree'] = round($buf[2][0]/1024, 2);
        $res['memUsed'] = ($res['memTotal']-$res['memFree']);
        $res['memPercent'] = (floatval($res['memTotal'])!=0)?round($res['memUsed']/$res['memTotal']*100,2):0;
        
        $res['swapTotal'] = round($buf[3][0]/1024, 2);
        $res['swapFree'] = round($buf[4][0]/1024, 2);
        $res['swapUsed'] = ($res['swapTotal']-$res['swapFree']);
        $res['swapPercent'] = (floatval($res['swapTotal'])!=0)?round($res['swapUsed']/$res['swapTotal']*100,2):0;
        
        // LOAD AVG
        if (false === ($str = @file("/proc/loadavg"))) return false;
        $str = explode(" ", implode("", $str));
        $str = array_chunk($str, 3);
        $res['loadAvg'] = implode(" ", $str[0]);
        
        return $res;
    }
//调用方法
sys_linux();

 

 代码如下 复制代码
function do_command($commandName, $args)
    {
        $buffer = "";
        if (false === ($command = find_command($commandName))) return false;
        if ($fp = @popen("$command $args", 'r'))
            {
    while (!@feof($fp))
    {
     $buffer .= @fgets($fp, 4096);
    }
    return trim($buffer);
   }
        return false;
    }

//确定执行文件位置 FreeBSD

 代码如下 复制代码
function find_command($commandName)
    {
        $path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');
        foreach($path as $p)
        {
            if (@is_executable("$p/$commandName")) return "$p/$commandName";
        }
        return false;
    }


 
//调用方法

 

echo do_command('sysctl', "-n hw.model");
 ?>

过滤空数组的方法我下面举了三个实例,一个是for,foreach,array_filter来处理,下面看实例

//方法一 利用array_filter调用我们自定的函数来过滤空值

 代码如下 复制代码

function clear($a)
{
return $a <> "";
}

$array = array("",'','','','',1,1,1,1,1);
$stt = array_filter($array , "clear");

print_r( $stt );
/*
输出结果

Array
(
    [5] => 1
    [6] => 1
    [7] => 1
    [8] => 1
    [9] => 1
)
空值被过滤
*/

//过滤空数据二,用循环来处理

 

 代码如下 复制代码

$array = array("",'','2','','',1,1,1,1,1);

foreach( $array as $v =>$vc )
{
 if( $vc =='' )
 {
  unset($array[$v]);
 }
}

print_

r( $array);

/*
Array
(
    [2] => 2
    [5] => 1
    [6] => 1
    [7] => 1
    [8] => 1
    [9] => 1
)
*/

//方法实例三,用for来实例

 代码如下 复制代码

$tarray = array('','11','','www.111cn.net','','','cn.net');

$len = count( $tarray );
for( $i=0;$i<$len;$i++ )
{
 if( $tarray[$i] == '' )
 {
  unset( $tarray[$i]);
 }
}

print_r($tarray);

/*
过滤空数组后的结果为

Array
(
    [1] => 11
    [3] => www.111cn.net
    [6] => cn.net
)
注明:本站原创教程转注明来源www.111cn.net
*/

<?php       

 代码如下 复制代码
if ($_GET['action'] == 'save') {       
      
    $up = new upload();       
    $up->set_dir(dirname(__FILE__).'/upload/','{y}/{m}');       
    $up->set_thumb(100,80);       
    $up->set_watermark(dirname(__FILE__).'/jblog/images/watermark.png',6,90);       
    $fs = $up->execute();       
      
    var_dump($fs);       
}    

   
?>       

 代码如下 复制代码
<html>       
    <head><title>test</title></head>       
    <body style="margin:0;padding:0">       
    <form name="upload" method="post" action="?action=save" enctype="multipart/form-data" style="margin:0">       
        <input type="file" name="attach[]" />       
        <input type="file" name="attach[]" />       
        <input type="submit" name="submit" value="上 传" />       
    </form>       
    </body>       
</html> 

 

 代码如下 复制代码
class upload {       
      
    var $dir;            //附件存放物理目录       
    var $time;           //自定义文件上传时间       
    var $allow_types;    //允许上传附件类型       
    var $field;          //上传控件名称       
    var $maxsize;        //最大允许文件大小,单位为KB       
      
    var $thumb_width;    //缩略图宽度       
    var $thumb_height;   //缩略图高度       
      
    var $watermark_file; //水印图片地址       
    var $watermark_pos;  //水印位置       
    var $watermark_trans;//水印透明度       
      
      
    //构造函数       
    //$types : 允许上传的文件类型 , $maxsize : 允许大小 ,  $field : 上传控件名称 , $time : 自定义上传时间       
    function upload($types = 'jpg|png', $maxsize = 1024, $field = 'attach', $time = '') {       
        $this->allow_types = explode('|',$types);       
        $this->maxsize = $maxsize * 1024;       
        $this->field = $field;       
        $this->time = $time ? $time : time();       
    }       
      
    //设置并创建文件具体存放的目录       
    //$basedir  : 基目录,必须为物理路径       
    //$filedir  : 自定义子目录,可用参数{y}、{m}、{d}       
    function set_dir($basedir,$filedir = '') {       
        $dir = $basedir;       
        !is_dir($dir) && @mkdir($dir,0777);       
        if (!emptyempty($filedir)) {       
            $filedir = str_replace(array('{y}','{m}','{d}'),array(date('Y',$this->time),date('m',$this->time),date('d',$this->time)),strtolower($filedir));       
            $dirs = explode('/',$filedir);       
            foreach ($dirs as $d) {       
                !emptyempty($d) && $dir .= $d.'/';       
                !is_dir($dir) && @mkdir($dir,0777);       
            }       
        }       
        $this->dir = $dir;       
    }       
      
    //图片缩略图设置,如果不生成缩略图则不用设置       
    //$width : 缩略图宽度 , $height : 缩略图高度       
    function set_thumb ($width = 0, $height = 0) {       
        $this->thumb_width  = $width;       
        $this->thumb_height = $height;       
    }       
      
    //图片水印设置,如果不生成添加水印则不用设置       
    //$file : 水印图片 , $pos : 水印位置 , $trans : 水印透明度       
    function set_watermark ($file, $pos = 6, $trans = 80) {       
        $this->watermark_file  = $file;       
        $this->watermark_pos   = $pos;       
        $this->watermark_trans = $trans;       
    }       
      
    /*----------------------------------------------------------------     
    执行文件上传,处理完返回一个包含上传成功或失败的文件信息数组,     
    其中:name 为文件名,上传成功时是上传到服务器上的文件名,上传失败则是本地的文件名     
          dir  为服务器上存放该附件的物理路径,上传失败不存在该值     
          size 为附件大小,上传失败不存在该值     
          flag 为状态标识,1表示成功,-1表示文件类型不允许,-2表示文件大小超出     
    -----------------------------------------------------------------*/      
    function execute() {       
        $files = array(); //成功上传的文件信息       
        $field = $this->field;       
        $keys = array_keys($_FILES[$field]['name']);       
        foreach ($keys as $key) {       
            if (!$_FILES[$field]['name'][$key]) continue;       
                   
            $fileext = $this->fileext($_FILES[$field]['name'][$key]); //获取文件扩展名       
            $filename = date('Ymdhis',$this->time).mt_rand(10,99).'.'.$fileext; //生成文件名       
            $filedir = $this->dir;  //附件实际存放目录       
            $filesize = $_FILES[$field]['size'][$key]; //文件大小       
                   
            //文件类型不允许       
            if (!in_array($fileext,$this->allow_types)) {       
                $files[$key]['name'] = $_FILES[$field]['name'][$key];       
                $files[$key]['flag'] = -1;       
                continue;       
            }       
      
            //文件大小超出       
            if ($filesize > $this->maxsize) {       
                $files[$key]['name'] = $_FILES[$field]['name'][$key];       
                $files[$key]['name'] = $filesize;       
                $files[$key]['flag'] = -2;       
                continue;       
            }       
      
            $files[$key]['name'] = $filename;       
            $files[$key]['dir'] = $filedir;       
            $files[$key]['size'] = $filesize;       
      
            //保存上传文件并删除临时文件       
            if (is_uploaded_file($_FILES[$field]['tmp_name'][$key])) {       
                move_uploaded_file($_FILES[$field]['tmp_name'][$key],$filedir.$filename);       
                @unlink($_FILES[$field]['tmp_name'][$key]);       
                $files[$key]['flag'] = 1;       
      
                //对图片进行加水印和生成缩略图       
                if (in_array($fileext,array('jpg','png'))) {       
                    if ($this->thumb_width) {       
                        if ($this->create_thumb($filedir.$filename,$filedir.'thumb_'.$filename)) {       
                            $files[$key]['thumb'] = 'thumb_'.$filename;  //缩略图文件名       
                        }       
                    }       
                    $this->create_watermark($filedir.$filename);       
                }       
            }       
        }       
      
        return $files;       
    }       
      
    //创建缩略图,以相同的扩展名生成缩略图       
    //$src_file : 来源图像路径 , $thumb_file : 缩略图路径       
    function create_thumb ($src_file,$thumb_file) {       
        $t_width  = $this->thumb_width;       
        $t_height = $this->thumb_height;       
      
        if (!file_exists($src_file)) return false;       
      
        $src_info = getImageSize($src_file);       
      
        //如果来源图像小于或等于缩略图则拷贝源图像作为缩略图       
        if ($src_info[0] <= $t_width && $src_info[1] <= $t_height) {       
            if (!copy($src_file,$thumb_file)) {       
                return false;       
            }       
            return true;       
        }       
      
        //按比例计算缩略图大小       
        if ($src_info[0] - $t_width > $src_info[1] - $t_height) {       
            $t_height = ($t_width / $src_info[0]) * $src_info[1];       
        } else {       
            $t_width = ($t_height / $src_info[1]) * $src_info[0];       
        }       
      
        //取得文件扩展名       
        $fileext = $this->fileext($src_file);       
      
        switch ($fileext) {       
            case 'jpg' :       
                $src_img = ImageCreateFromJPEG($src_file); break;       
            case 'png' :       
                $src_img = ImageCreateFromPNG($src_file); break;       
            case 'gif' :       
                $src_img = ImageCreateFromGIF($src_file); break;       
        }       
      
        //创建一个真彩色的缩略图像       
        $thumb_img = @ImageCreateTrueColor($t_width,$t_height);       
      
        //ImageCopyResampled函数拷贝的图像平滑度较好,优先考虑       
        if (function_exists('imagecopyresampled')) {       
            @ImageCopyResampled($thumb_img,$src_img,0,0,0,0,$t_width,$t_height,$src_info[0],$src_info[1]);       
        } else {       
            @ImageCopyResized($thumb_img,$src_img,0,0,0,0,$t_width,$t_height,$src_info[0],$src_info[1]);       
        }       
      
        //生成缩略图       
        switch ($fileext) {       
            case 'jpg' :       
                ImageJPEG($thumb_img,$thumb_file); break;       
            case 'gif' :       
                ImageGIF($thumb_img,$thumb_file); break;       
            case 'png' :       
                ImagePNG($thumb_img,$thumb_file); break;       
        }       
      
        //销毁临时图像       
        @ImageDestroy($src_img);       
        @ImageDestroy($thumb_img);       
      
        return true;       
      
    }       
      
    //为图片添加水印       
    //$file : 要添加水印的文件       
    function create_watermark ($file) {       
      
        //文件不存在则返回       
        if (!file_exists($this->watermark_file) || !file_exists($file)) return;       
        if (!function_exists('getImageSize')) return;       
               
        //检查GD支持的文件类型       
        $gd_allow_types = array();       
        if (function_exists('ImageCreateFromGIF')) $gd_allow_types['image/gif'] = 'ImageCreateFromGIF';       
        if (function_exists('ImageCreateFromPNG')) $gd_allow_types['image/png'] = 'ImageCreateFromPNG';       
        if (function_exists('ImageCreateFromJPEG')) $gd_allow_types['image/jpeg'] = 'ImageCreateFromJPEG';       
      
        //获取文件信息       
        $fileinfo = getImageSize($file);       
        $wminfo   = getImageSize($this->watermark_file);       
      
        if ($fileinfo[0] < $wminfo[0] || $fileinfo[1] < $wminfo[1]) return;       
      
        if (array_key_exists($fileinfo['mime'],$gd_allow_types)) {       
            if (array_key_exists($wminfo['mime'],$gd_allow_types)) {       
                       
                //从文件创建图像       
                $temp = $gd_allow_types[$fileinfo['mime']]($file);       
                $temp_wm = $gd_allow_types[$wminfo['mime']]($this->watermark_file);       
      
                //水印位置       
                switch ($this->watermark_pos) {                    
                    case 1 :  //顶部居左       
                        $dst_x = 0; $dst_y = 0; break;                     
                    case 2 :  //顶部居中       
                        $dst_x = ($fileinfo[0] - $wminfo[0]) / 2; $dst_y = 0; break;                       
                    case 3 :  //顶部居右       
                        $dst_x = $fileinfo[0]; $dst_y = 0; break;                      
                    case 4 :  //底部居左       
                        $dst_x = 0; $dst_y = $fileinfo[1]; break;                      
                    case 5 :  //底部居中       
                        $dst_x = ($fileinfo[0] - $wminfo[0]) / 2; $dst_y = $fileinfo[1]; break;            
                    case 6 :  //底部居右       
                        $dst_x = $fileinfo[0]-$wminfo[0]; $dst_y = $fileinfo[1]-$wminfo[1]; break;       
                    default : //随机       
                        $dst_x = mt_rand(0,$fileinfo[0]-$wminfo[0]); $dst_y = mt_rand(0,$fileinfo[1]-$wminfo[1]);       
                }       
      
                if (function_exists('ImageAlphaBlending')) ImageAlphaBlending($temp_wm,True); //设定图像的混色模式       
                if (function_exists('ImageSaveAlpha')) ImageSaveAlpha($temp_wm,True); //保存完整的 alpha 通道信息       
      
                //为图像添加水印       
                if (function_exists('imageCopyMerge')) {       
                    ImageCopyMerge($temp,$temp_wm,$dst_x,$dst_y,0,0,$wminfo[0],$wminfo[1],$this->watermark_trans);       
                } else {       
                    ImageCopyMerge($temp,$temp_wm,$dst_x,$dst_y,0,0,$wminfo[0],$wminfo[1]);       
                }       
      
                //保存图片       
                switch ($fileinfo['mime']) {       
                    case 'image/jpeg' :       
                        @imageJPEG($temp,$file);       
                        break;       
                    case 'image/png' :       
                        @imagePNG($temp,$file);       
                        break;       
                    case 'image/gif' :        
                        @imageGIF($temp,$file);       
                        break;       
                }       
                //销毁零时图像       
                @imageDestroy($temp);       
                @imageDestroy($temp_wm);       
            }       
        }       
    }       
      
    //获取文件扩展名       
    function fileext($filename) {       
        return strtolower(substr(strrchr($filename,'.'),1,10));       
    }       
}   

Memcached的工作方式

以下的部分中,读者最好能准备一份memcached的源代码。

Memcached是传统的网络服务程序,如果启动的时候使用了-d参数,它会以守护进程的方式执行。创建守护进程由daemon.c完成,这个程序只有一个daemon函数,这个函数很简单(如无特殊说明,代码以1.2.1为准):

 代码如下 复制代码

CODE:
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>

int
daemon(nochdir, noclose)
    int nochdir, noclose;
{
    int fd;

    switch (fork()) {
    case -1:
        return (-1);
    case 0:
        break; 
    default:
        _exit(0);
    }

    if (setsid() == -1)
        return (-1);

    if (!nochdir)
        (void)chdir(”/”);

    if (!noclose && (fd = open(”/dev/null”, O_RDWR, 0)) != -1) {
        (void)dup2(fd, STDIN_FILENO);
        (void)dup2(fd, STDOUT_FILENO);
        (void)dup2(fd, STDERR_FILENO);
        if (fd > STDERR_FILENO)
            (void)close(fd);
    }
    return (0);
}

这个函数 fork 了整个进程之后,父进程就退出,接着重新定位 STDIN 、 STDOUT 、 STDERR 到空设备, daemon 就建立成功了。

 代码如下 复制代码
<?php
class Memcached
{
private $mem;
public $pflag=''; // memcached pconnect tag
private function memConnect($serkey){
require 'config.php';
$server = $memcached;
$this->mem = new Memcache;
$link = !$this->pflag ? 'connect' : 'pconnect' ;
$this->mem->$link($server[$serkey][0],$server[$serkey][1]) or $this->errordie('memcached connect error');
}
public function set($ser_key,$values,$flag='',$expire=''){
$this->memConnect($this->tag($ser_key));
if($this->mem->set($ser_key,$values,$flag,$expire)) return true;
else return false;
}
public function get($ser_key){
$this->memConnect($this->tag($ser_key));
if($var=$this->mem->get($ser_key)) return $var;
else return false;
}
private function tag($ser_key){
$tag=explode('_',$ser_key);
return $tag[0];
}
private function errordie($errmsg){
die($errmsg);
}
}
?>

 

 代码如下 复制代码


class Mysql
{
private $mysqlmaster;
private $myssqlslave;
private static $auid=0;
public function __construct(){
require 'config.php';
$msg = $mysql;

$this->mysqlmaster = new mysqli($msg['master'][0],$msg['master'][1],$msg['master'][2],$msg['master'][3]); //master mysql
$this->mysqlslave = $this->autotranscat($msg); // slave mysql
if(mysqli_connect_errno()){
printf("Connect failed: %s ",mysqli_connect_error());
exit();
}
if(!$this->mysqlmaster->set_charset("latin1") && !$this->mysqlslave->set_charset("latin1")){
exit("set charset error");
}
}
private function autotranscat($mysql){
session_start();
$_SESSION['SID']!=0 || $_SESSION['SID']=0 ;
if($_SESSION['SID'] >=count($mysql)-1) $_SESSION['SID'] = 1;
else $_SESSION['SID']++;
$key = 'slave_'.$_SESSION['SID'];
echo($_SESSION['SID']);
return new mysqli($mysql[$key][0],$mysql[$key][1],$mysql[$key][2],$mysql[$key][3]);
}
public function mquery($sql){ //insert update
if(!$this->mysqlmaster->query($sql)){
return false;
}
}
public function squery($sql){
if($result=$this->mysqlslave->query($sql)){
return $result;
}else{
return false;
};
}
public function fetArray($sql){
if($result=$this->squery($sql)){
while($row=$result->fetch_array(MYSQLI_ASSOC)){
$resultraa[] = $row;
};
return $resultraa;
}
}
}
?>

 

require 'init.php';
$mem = new Memcached;
/* $mem->set('en_xx','bucuo');
echo($mem->get('en_xx'));
$mem->set('cn_jjyy','wokao');
echo($mem->get('cn_jjyy'));
*/
$sq = new Mysql;
$sql = "insert into mybb(pid) values(200)";
$mdsql = md5($sql);
if(!$result=$mem->get('cn_'.$mdsql)){
$sq->mquery("insert into mybb(pid) values(200)"); //插入到主mysql
$result = $sq->fetArray("select * from mybb"); //查询 是 从mysql
foreach($result as $var){
echo $var['pid'];
}
$mem->set('cn_'.$mdsql,$result); //添加到 名为 cn 的 memcached 服务器
}else{
foreach($result as $var){
echo $var['pid'];
}
}
?>

 

 代码如下 复制代码
<?php
$memcached = array( //用memcached 的 多 进程模拟 多台memcached 服务器 cn en 为 内存服务器名
'cn'=>array('192.168.254.144',11211),
'en'=>array('192.168.254.144',11212)
);
$mysql = array( // mysql 的主从 我的环境是 : xp 主 linux 从 mysql 5 php5
'master'=>array('192.168.254.213','root','1','mydz'),
'slave_1'=>array('192.168.254.144','root','1','mydz') //可以灵活添加多台从服务器
);
?>

Memcached 本身的启动过程,在 memcached.c 的 main 函数中顺序如下:

1 、调用 settings_init() 设定初始化参数
2 、从启动命令中读取参数来设置 setting 值
3 、设定 LIMIT 参数
4 、开始网络 socket 监听(如果非 socketpath 存在)( 1.2 之后支持 UDP 方式)
5 、检查用户身份( Memcached 不允许 root 身份启动)
6 、如果有 socketpath 存在,开启 UNIX 本地连接(Sock 管道)
7 、如果以 -d 方式启动,创建守护进程(如上调用 daemon 函数)
8 、初始化 item 、 event 、状态信息、 hash 、连接、 slab
9 、如设置中 managed 生效,创建 bucket 数组
10 、检查是否需要锁定内存页
11 、初始化信号、连接、删除队列
12 、如果 daemon 方式,处理进程 ID
13 、event 开始,启动过程结束, main 函数进入循环。

在 daemon 方式中,因为 stderr 已经被定向到黑洞,所以不会反馈执行中的可见错误信息。

memcached.c 的主循环函数是 drive_machine ,传入参数是指向当前的连接的结构指针,根据 state 成员的状态来决定动作。

Memcached 使用一套自定义的协议完成数据交换,它的 protocol 文档可以参考: http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt

在API中,换行符号统一为

[!--infotagslink--]

相关文章

  • 在java中获取List集合中最大的日期时间操作

    这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
  • 教你怎么用Java获取国家法定节假日

    这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
  • mysql中获取一天、一周、一月时间数据的各种sql语句写法

    创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31
  • .NET/C# 使用Stopwatch测量运行时间

    这篇文章主要介绍了.NET/C# 使用Stopwatch测量运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 浅谈redis key值内存消耗以及性能影响

    这篇文章主要介绍了浅谈redis key值内存消耗以及性能影响,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07
  • 详解分析MySQL8.0的内存消耗

    这篇文章主要介绍了详解分析MySQL8.0的内存消耗,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下...2021-03-23
  • C#中动态显示当前系统时间的实例方法

    想在网页中动态地显示当前系统的时间,找了好多,不过都是一些停在那里不动的。。。不过皇天不负有心人,终于让我找到了...2020-06-25
  • JavaScript时间操作之年月日星期级联操作

    这篇文章主要介绍了JavaScript时间操作之级联日期选择操作,涉及到年、月、日、星期,感兴趣的小伙伴们可以参考一下...2016-01-18
  • 非常全面的php日期时间运算汇总

    实例讲解之前,先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳。 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。...2015-11-08
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
  • postgresql 中的时间处理小技巧(推荐)

    这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • 解决使用OpenCV中的imread()内存报错问题

    这篇文章主要介绍了解决使用OpenCV中的imread()内存报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • 从chrome调试工具中把拖延时间的东西找出来

    我打开android开发手册的时候:http://www.csdn123.com/html/android/reference/packages.html 发现打开速度很慢,我用按了一下F12打开调试面板,切换到网络的选项卡network...2016-05-19
  • C# 当前系统时间获取及时间格式详解

    这篇文章主要介绍了C# 当前系统时间获取及时间格式详解的相关资料,这里提供代码实例,帮助大家学习参考,需要的朋友可以参考下...2020-06-25
  • 帝国CMS显示指定时间内更新的信息数量

    /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 帝国CMS显示指定时间内更新的信息数...2016-11-01
  • C#使用TimeSpan时间计算的简单实现

    这篇文章主要给大家介绍了关于C#使用TimeSpan时间计算的相关资料,以及通过一个实例代码给大家介绍了C#使用timespan和timer完成一个简单的倒计时器的方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧...2020-06-25
  • php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法

    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获取昨日起始时间戳和结束时间...2013-10-04
  • C#获取文件创建时间的方法

    这篇文章主要介绍了C#获取文件创建时间的方法,涉及C#文件操作的技巧及CreattionTime属性的使用方法,需要的朋友可以参考下...2020-06-25
  • PowerShell中使用Get-Date获取日期时间并格式化输出的例子

    这篇文章主要介绍了PowerShell中使用Get-Date获取日期时间并格式化输出的例子,本文讲解了直接调用Get-Date、在Write-Host中使用Get-Date、格式化输出的方法,需要的朋友可以参考下...2020-06-30
  • Vue 中获取当前时间并实时刷新的实现代码

    这篇文章主要介绍了Vue 中获取当前时间并实时刷新,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-13