php mktime函数获取今天开始和结束的时间截

 更新时间:2016年11月25日 17:05  点击:2157
php mktime函数获取今天开始和结束的时间截,mktime函数我想大家并不陌生了,他可以把日期转换在时间截了,下面我整理了一一些使用mktime函数对日期转换的例子,希望文章对各位有帮助。

下面我们开始介绍如何获取当天的开始时间截和结束时间截。 代码如下:

mktime(hour,minute,second,month,day,year,is_dst)

参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst
可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。

例子 今日、昨日、上周、本月的起始时间戳和结束时间戳

 代码如下 复制代码

//开始时间截

$start=mktime(0,0,0,date("m"),date("d"),date("Y"));

//结束时间截:
$end=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'));

写成函数转换成中文

 代码如下 复制代码

function get_period_time($type='day'){
    $rs = FALSE;
    $now = time();
    switch ($type){
        case 'day'://今天
            $rs['beginTime'] = date('Y-m-d 00:00:00', $now);
            $rs['endTime'] = date('Y-m-d 23:59:59', $now);
            break;
        case 'week'://本周
            $time = '1' == date('w') ? strtotime('Monday', $now) : strtotime('last Monday', $now);
            $rs['beginTime'] = date('Y-m-d 00:00:00', $time);
            $rs['endTime'] = date('Y-m-d 23:59:59', strtotime('Sunday', $now));
            break;
        case 'month'://本月
            $rs['beginTime'] = date('Y-m-d 00:00:00', mktime(0, 0, 0, date('m', $now), '1', date('Y', $now)));
            $rs['endTime'] = date('Y-m-d 23:39:59', mktime(0, 0, 0, date('m', $now), date('t', $now), date('Y', $now)));
            break;
        case '3month'://三个月
            $time = strtotime('-2 month', $now);
            $rs['beginTime'] = date('Y-m-d 00:00:00', mktime(0, 0,0, date('m', $time), 1, date('Y', $time)));
            $rs['endTime'] = date('Y-m-d 23:39:59', mktime(0, 0, 0, date('m', $now), date('t', $now), date('Y', $now)));
            break;
        case 'half_year'://半年内
            $time = strtotime('-5 month', $now);
            $rs['beginTime'] = date('Y-m-d 00:00:00', mktime(0, 0,0, date('m', $time), 1, date('Y', $time)));
            $rs['endTime'] = date('Y-m-d 23:39:59', mktime(0, 0, 0, date('m', $now), date('t', $now), date('Y', $now)));
            break;
        case 'year'://今年内
            $rs['beginTime'] = date('Y-m-d 00:00:00', mktime(0, 0,0, 1, 1, date('Y', $now)));
            $rs['endTime'] = date('Y-m-d 23:39:59', mktime(0, 0, 0, 12, 31, date('Y', $now)));
            break;
    }
    return $rs;
}

php实现文件下载有许多的方法最多的就是直接显示文件路径了然后点击下载即可,另一种是利用header函数再由filesize与fopen读取文件进行下载了,这个可以实现限速下载了,但是个人认为使用header限速下载大文件是非常的不理想的哦,下面我们来看个例子。

例子

 代码如下 复制代码

<?php
header("Content-Type; text/html; charset=utf-8");
class DownFile {
public static function File($_path,$file_name) {
//解决中文乱码问题
$_path=$_path.$file_name;
//判断文件是否存在
if (!file_exists($_path)) {
exit('文件不存在');
}
$_path=iconv('utf-8','gb2312',$_path);
$file_size=filesize($_path);
$fp=fopen($_path,'r');
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: $file_name");
header("Content-Disposition: attachment; filename=$file_name");
$buffer=1024;
$file_count=0;
while (!feof($fp) && ($file_size-$file_count>0)) {
$file_data=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_data;
}
fclose($fp);
}
}
//路径
$path='../';
//文件名
$file_name='filelist.php';
DownFile::File($path,$file_name);
?>

分析研究

使用header函数可以把像服务器端的脚本程序不需打包就可以进行下载了,像如php文件或html文件了,上面例子的核心语句是

 代码如下 复制代码

$_path=iconv('utf-8','gb2312',$_path);
$file_size=filesize($_path);
$fp=fopen($_path,'r');
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: $file_name");
header("Content-Disposition: attachment; filename=$file_name");
$buffer=1024;
$file_count=0;
while (!feof($fp) && ($file_size-$file_count>0)) {
$file_data=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_data;
}

下面三句,一个转换文件名编码这个防止中文乱码,第一个是获取文件大小,第三个是使用fopen读取文件

 代码如下 复制代码

$_path=iconv('utf-8','gb2312',$_path);
$file_size=filesize($_path);
$fp=fopen($_path,'r');

下面几行代码 是告诉浏览器我们要发送的文件是什么内容与文件名

 代码如下 复制代码

header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: $file_name");
header("Content-Disposition: attachment; filename=$file_name");


下面三行是告诉我们最大下载不能超过1MB第秒,并且循环一直下载,直到文件下载完毕即可

 代码如下 复制代码

$buffer=1024;
$file_count=0;
while (!feof($fp) && ($file_size-$file_count>0)) {
$file_data=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_data;

在php中trim函数是删除字符串中空格的并不是html代码的nbsp空格了,那么我们可不可以使用期trim来删除呢,其实稻简单下面我们来看看吧。

此处所指的nbsp是实体,而不是nbsp四个字符

 代码如下 复制代码
$str = "&nbsp;abc";
$converted = strtr($str, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));
var_dump($converted); // 这儿才是要处理的字符串,上面的都是准备工作

在处理此问题的时候,经历了一番波折,先是var_dump出来,但是和正常的字符串无异。
后来又使用escape尝试输出,发现是xa0,于是就想trim($converted, "xa0"),无果。

最后在php手册的trim函数下的第一个评论发现了解决方案。

 代码如下 复制代码

var_dump(trim($converted, chr(0xc2) . chr(0xa0)));

其实要删除字符串中的&nbsp;我们压根不需要这么复杂了,只要使用str_replace()就可搞定了。

 代码如下 复制代码

$a ="&nbsp; www.111cn.net";
echo str_replace('&nbsp;','',$a);

结果为

www.111cn.net

如果我们是一维数组增加数组元素我们可以使用ArrayListay_push,当然除这种方法之外我们还有更直接的办法,下面我来给大家整理php数组添加元素的一些方法总结。


一,一维数组增加元素

$ArrayList = ArrayListay(); 
Array_push($ArrayList, el1, el2 ... eln); 

但其实有一种更直接方便的做法:

 代码如下 复制代码

$ArrayList = ArrayListay(); 
$ArrayList[] = el1; 
$ArrayList[] = el2; 
... 
$ArrayList[] = eln; 

两种方法得出的效果是一样的

添加一个或多个元素

 代码如下 复制代码

<?php
    $ArrayList1 = ArrayListay("a", "b");
    Array_push($ArrayList1, "c", "d");
    print_r($ArrayList1);
  ?>
  运行结果:
   ArrayListay
  (
   [0] => a
   [1] => b
   [2] => c
   [3] => d
  )

注:如果第一个参数不是数组,ArrayListay_push() 将发出一条警告

在数组开头插入元素

1.ArrayListay_unshift

使用方法

 代码如下 复制代码

<?php
$array_Qlist = ArrayListay("军民联防", "banana");
Array_unshift($array_Qlist, "西瓜", "吹牛B");
print_r($array_Qlist);
?>

输出

ArrayListay
(
    [0] => 西瓜
    [1] => 吹牛B
    [2] => 军民联防
    [3] => banana
)

数组添加关联元素使用使用ArrayListay_push或者ArrayListay_unshift是行不通了,那么我们要如何增加呢


使用ArrayListay_merge方法实现类似ArrayListay_unshift在开头添加元素的功能

 代码如下 复制代码

<?php
$array_Qlist = ArrayListay('a', 'B');
$array_Qlist = Array_merge(ArrayListay('front' => '你好小www.111cn.net'), $array_Qlist);
/*
ArrayListay
(
    [front] => 你好小www.111cn.net
    [0] => a
    [1] => b
)
*/
?>

2.+操作符

 代码如下 复制代码

<?php
$array_Qlist = Array('a', 'B');
$array_Qlist = Array('front' => '你好小www.111cn.net') + $array_Qlist;
?>

输出结果与使用ArrayListay_merge方法一样。

3.在元素结尾添加关联数组元素

 代码如下 复制代码

<?php
$array_Qlist = ArrayListay('a', 'B');
$array_Qlist['front'] = '你好小www.111cn.net';
/*
输出
ArrayListay
(
    [0] => a
    [1] => b
    [front] => 你好小www.111cn.net 
)
*/
?>

至于有些朋友说Array_push增加元素与直接$a[]='a'这种性能要差点之外其它的都是一样,如果只要一个值就没可比性了哦。

array_merge()函数在php中是对数据进行合并的,可以把多个数组合成一个数组,并且不改变原数组的值了,但今天我在使用array_merge合并数组时碰到几个小细节上的问题,下面我举例子给各位朋友看看。

1.array_merge()合并

例子

 代码如下 复制代码

$array = array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 = array_merge($array,$array2);

输出结果为

Array ( [a] => bb [b] => cc )

上面因为都是数组就没有问题了,假如我们把$array 设置不是数组看看什么情况

 代码如下 复制代码


$array = 1;//array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 = array_merge($array,$array2);
print_r( $array3 );

运行后结果

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in E:test1.php on line 4

告诉我们必须是要一个数组了,那么这个我就有多种方法来解决,

1.使用is_array() 进行判断了,但是会发现如果合并数组比较多一个个判断不合理,后来发现可以转换数据类型

 代码如下 复制代码

$array = 1;//array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 =  array_merge((array)$array,(array)$array2);
print_r( $array3 );

输出结果不报错了

Array ( [0] => 1 [b] => cc )

他自动把数字1转换成了数组了,所以大家在使用时一定要注意这些细节哦。

[!--infotagslink--]

相关文章

  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • 在java中获取List集合中最大的日期时间操作

    这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • php获取一个文件夹的mtime的程序

    php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 教你怎么用Java获取国家法定节假日

    这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • 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
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • jquery如何获取元素的滚动条高度等实现代码

    主要功能:获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 :$(document).width();...2015-10-21
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • jquery获取div距离窗口和父级dv的距离示例

    jquery中jquery.offset().top / left用于获取div距离窗口的距离,jquery.position().top / left 用于获取距离父级div的距离(必须是绝对定位的div)。 (1)先介绍jquery.offset().top / left css: 复制代码 代码如下: *{ mar...2013-10-13
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04