php获取当前时间
php获取日期(今天、昨天、上周、本周、上月、本月、季度、去年)
php获取⽇期(今天、昨天、上周、本周、上⽉、本⽉、季度、去年)获取⽇期有很多种写法,“这”只是其中⼀种,欢迎指出错误并补充://今天$today = date("Y-m-d");//昨天$yesterday = date("Y-m-d",strtotime("-1 day"));//上周$lastweek_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y")));$lastweek_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y")));//本周$thisweek_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")));$thisweek_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y")));//上⽉/**不太靠谱,当上个⽉没有当前天的⽇期会出错,⽐如10⽉31⽇时获取上个⽉⽉初和⽉末就会变成10⽉1⽇和10⽉31⽇*同理,+1 moth也是⼀样*/$lastmonth_start = date('Y-m-01', strtotime('-1 month'));$lastmonth_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y")));// 这个才是王道// 不太靠谱,同上$lastmonth_end = date('Y-m-t', strtotime('-1 month'));$lastmonth_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y"))); // 这个才是王道补充:--------------------突然看到这个也很有意思-----------------------------上个⽉第⼀天:echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 month')); // 本⽉第⼀天再减⼀个⽉上个⽉最后⼀天:echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 本⽉第⼀天再减⼀天//本⽉$thismonth_start = date("Y-m-01");$thismonth_end = date("Y-m-t");//本季度未最后⼀⽉天数$getMonthDays = date("t",mktime(0, 0 , 0,date('n')+(date('n')-1)%3,1,date("Y")));//本季度/$thisquarter_start = date('Y-m-d H:i:s', mktime(0, 0, 0,date('n')-(date('n')-1)%3,1,date('Y')));$thisquarter_end = date('Y-m-d H:i:s', mktime(23,59,59,date('n')+(date('n')-1)%3,$getMonthDays,date('Y')));// 去年$lastyear_start = date("Y-01-01", strtotime('-1 year'));$lastyear_end = date("Y-12-31", strtotime('-1 year'));//2019-10-10这天 2个⽉后的⽇期date("Y-m-d",strtotime("+2 month",strtotime("2019-10-10")));// 2019-12-10这个正常没问题date("Y-m-d",strtotime("+1 month",strtotime("2019-10-31")));// 2019-12-01这个异常了,为啥呢?因为11⽉份没有31天。
PHP常用代码大全
PHP常用代码1、连接MYSQL数据库代码<?php$connec=mysql_connect("localhost","root","root") or die("不能连接数据库服务器:".mysql_error()); mysql_select_db("liuyanben",$connec) or die ("不能选择数据库: ".mysql_error());mysql_query("set names 'gbk'");>2、读取数据库,并实现循环输出<?php$sql="select * from liuyan order by ly_id desc";$conn=mysql_query($sql,$connec);while($rs=mysql_fetch_array($conn)){>循环的内容.........<?php}>3、如何实现分页,包括两个函数,两个调用1)两个函数<?//分页函数function genpage(&$sql,$page_size=2){global $prepage,$nextpage,$pages,$sums; //out param$page = $_GET["page"];$eachpage = $page_size;$pagesql = strstr($sql," from ");$pagesql = "select count(*) as ids ".$pagesql;$conn = mysql_query($pagesql) or die(mysql_error());if($rs = mysql_fetch_array($conn)) $sums = $rs[0];$pages = ceil(($sums-0.5)/$eachpage)-1;$pages = $pages>=0?$pages:0;$prepage = ($page>0)?$page-1:0;$nextpage = ($page<$pages)?$page+1:$pages;$startpos = $page*$eachpage;$sql .=" limit $startpos,$eachpage ";}//显示分页function showpage(){global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function$shownum =10/2;$startpage = ($page>=$shownum)?$page-$shownum:0;$endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;echo "共".($pages+1)."页: ";if($page>0)echo "<a href=$PHP_SELF?page=0$queryString>首页</a>";if($startpage>0)echo " ... <b><a href=$PHP_SELF?page=".($page-$shownum*2)."$queryString>?</a></b>";for($i=$startpage;$i<=$endpage;$i++){if($i==$page) echo " <b>[".($i+1)."]</b> ";else echo " <a href=$PHP_SELF?page=$i$queryString>".($i+1)."</a> ";}if($endpage<$pages)echo "<b><a href=$PHP_SELF?page=".($page+$shownum*2)."$queryString>?</a></b> ... ";if($page<$pages)echo "<a href=$PHP_SELF?page=$pages$queryString>尾页</a>";}//显示带分类的分页function showpage1(){$fenlei=$_GET["fenleiid"];global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function$shownum =10/2;$startpage = ($page>=$shownum)?$page-$shownum:0;$endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;echo "共".($pages+1)."页: ";if($page>0)echo "<a href=$PHP_SELF?fenleiid=$fenlei&page=0$queryString>首页</a>";if($startpage>0)echo " ... <b><a href=$PHP_SELF?fenleiid=$fenlei&page=".($page-$shownum*2)."$queryString>?</a></b>";for($i=$startpage;$i<=$endpage;$i++){if($i==$page) echo " <b>[".($i+1)."]</b> ";else echo " <a href=$PHP_SELF?fenleiid=$fenlei&page=$i$queryString>".($i+1)."</a> ";}if($endpage<$pages)echo "<b><a href=$PHP_SELF?fenleiid=$fenlei&page=".($page+$shownum*2)."$queryString>?</a></b> ... ";if($page<$pages)echo "<a href=$PHP_SELF?fenleiid=$fenlei&page=$pages$queryString>尾页</a>";}>2)两个调用第一个<?php$sql="select * from liuyan order by ly_id desc";genpage($sql); //只需要正常代码加上这一行就ok。
php 获取请求浏览器时区信息的方法
一、介绍在很多全球信息站和应用程序中,经常需要根据用户所在的时区来显示相关的日期和时间信息。
在一个国际化的全球信息站中,用户可能来自不同的时区,他们希望看到的时间信息是与他们所在的时区相符的。
而在PHP 中,我们可以通过一些方法来获取用户所在的时区信息,从而满足这一需求。
二、使用`date_default_timezone_get()`函数`date_default_timezone_get()`是一个用来获取当前时区的 PHP 函数。
它返回当前默认的时区名称,如果没有设置默认时区则返回空。
这个函数是在 PHP 5.1.0 版本新增的。
```php<?php$timezone = date_default_timezone_get();echo "当前默认时区: " . $timezone;>```在以上的例子中,`date_default_timezone_get()`函数会返回服务器设置的默认时区。
这个默认时区通常可以在 php.ini 中进行设置。
三、使用`$_SERVER['HTTP_ACCEPT_LANGUAGE']`获取浏览器信息另一种获取用户时区信息的方法是通过分析浏览器发送的 HTTP 请求头中的`Accept-Language`信息。
这个信息通常包含了用户所使用的浏览器的语言首选项,也包括了时区的相关信息。
```php<?php$accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE']; echo "浏览器语言首选项: " . $accept_language;>```这个方法不过是一种猜测用户所在时区的方法,因为浏览器发送的`Accept-Language`信息可能并不准确,用户也可以手动修改浏览器设置中的语言偏好。
四、使用 GeoIP 数据库除了上述两种方法外,还可以通过 IP 位置区域来获取用户所在的时区信息。
php设置时区的方法
php设置时区的方法一、什么是时区?时区是指地球上各个地方所采用的时间标准。
由于地球自转的原因,不同的地方所处的时区不同,即使在同一经度上也会有时间差异。
二、php设置时区的作用在编写php程序时,我们经常需要获取当前时间或者处理时间相关的操作。
如果不设置时区,则会使用服务器默认的时区,这可能导致时间显示不准确或者出现错误。
三、php设置时区的方法1. 通过ini_set函数设置可以使用ini_set函数来设置php脚本中使用的默认时区。
例如,要将默认时区设置为北京时间(东八区),可以使用以下代码:```ini_set('date.timezone', 'Asia/Shanghai');2. 在php.ini文件中设置如果想要全局修改php默认时区,可以直接修改php.ini文件中的配置项。
找到以下配置项:```;date.timezone =```将其改为:```date.timezone = Asia/Shanghai```其中Asia/Shanghai表示北京时间(东八区)。
3. 使用date_default_timezone_set函数设置date_default_timezone_set函数可以用来修改脚本中使用的默认时区。
例如:```date_default_timezone_set('Asia/Shanghai');```四、如何选择合适的时区?1. 根据所在地理位置选择如果你想要让你的程序按照当地时间显示日期和时间,那么应该选择与你所在地理位置相同的时区。
2. 根据用户所在地选择如果你的程序提供了多语言支持,那么应该根据用户所在地来选择时区。
可以通过IP地址或者浏览器语言来判断用户所在地。
3. 根据服务器所在地选择如果你的程序是部署在云端服务器上的,那么应该根据服务器所在地来选择时区。
五、常用时区列表以下是一些常用的时区列表,可以根据需要进行选择:```Asia/ShanghaiAsia/TokyoAsia/SingaporeAsia/Hong_KongEurope/LondonEurope/ParisAmerica/New_YorkAmerica/Los_Angeles```。
PHP日期时间函数大全
//本周
$thisweek_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")));
?>
mktime($hour, $minute, $second, $month, $day, $year)
此函数的作用与getdate()的作用相反:它由一系列的日期与时间值生成一个UNIX时间标签(GMT时间1970年1月1日到现在消逝的秒数)。不用自变量时,它生成当前时间的UNIX时间标签。
今天是:Tuesday
echo date('D');
今天是:Tue
大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;
小写l表示当天是星期几的英文全写(Tuesday);
而使用大写D表示星期几的3个字符缩写(Tue)。
echo date('w');
今天星期:2
echo date('W');
// run some code
for ($x=0; $x<1000; $x++) {
$null = $x * $x;
}
// get ending value
PHP获取中国时间(上海时区时间)及美国时间的方法
PHP获取中国时间(上海时区时间)及美国时间的⽅法本⽂实例讲述了PHP获取中国时间(上海时区时间)及美国时间的⽅法。
分享给⼤家供⼤家参考,具体如下:中国时间:/*** 获取中国时间,即上海时区时间* @param <type> $format* @return <type>*/function getChinaTime($format = "Y-m-d H:i:s") {$timezone_out = date_default_timezone_get();date_default_timezone_set('Asia/Shanghai');$chinaTime = date($format);date_default_timezone_set($timezone_out);return $chinaTime;}echo getChinaTime();//输出当前时间,如:2017-02-23 11:50:50美国时区:America/New_York 美国东部封装了另外⼀个⽅法:/*** 时间格式化* @param string $dateformat 时间格式* @param int $timestamp 时间戳* @param int $timeoffset 时区偏差* @return string*/function qgmdate($dateformat = 'Y-m-d H:i:s', $timestamp = '', $timeoffset = 8) {if(empty($timestamp)) {$timestamp = time();}$result = gmdate($dateformat, $timestamp + $timeoffset * 3600);return $result;}//应⽤举例:获取美国时间echo qgmdate('Y-m-d H:i:s', '', -4);//输出美国时间,如:2017-02-22 23:51:17PS:这⾥再为⼤家提供2款时间相关⼯具,供⼤家参考使⽤:更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家PHP程序设计有所帮助。
PHP跨时区(UTC时间)应用解决方案
PHP跨时区(UTC时间)应⽤解决⽅案PHP设置:date_default_timezone_set("UTC");Yii设置:config/main.php 中添加 :'timeZone'=>'UTC',如此设置后,PHP⽣成的时间基本都是UTC时间了.例如://输出当前UTC时间date("Y-m-d H:i:s");.可以⽤PHP控制,也可以通过设置数据库时区来实现., 由JS将其转换为本地时间后进⾏显⽰.JS内部数据与显⽰数据分离.JS转换函数参考:复制代码代码如下:/*** 将UTC时间转为本地时间* @param string utcTime utc时间字符串格式 :'Y-m-d H:i:s'* @return string 本地时间字符串格式 :'Y-m-d H:i:s'*/function utcToLocal(utcTime) {if(utcTime==='0000-00-00 00:00:00' || utcTime===null || utcTime==='' || utcTime===undefined)return utcTime;var locTime = new Date(); //local时间对象utcTime=utcTime.replace("-", "/").replace("-", "/"); //⽕狐不兼容'-'分隔⽇期//解析字符串及本地时间赋值locTime.setTime(Date.parse(utcTime)-locTime.getTimezoneOffset()*60000);//本地时间字符串格式化var year = locTime.getFullYear();var month = preZero(locTime.getMonth()+1);var date = preZero(locTime.getDate());var hour = preZero(locTime.getHours());var minute = preZero(locTime.getMinutes());var second = preZero(locTime.getSeconds());return year+'-'+month+'-'+date+' '+hour+':'+minute+':'+second;}/*** 将本地时间转为UTC时间* @param string locTime utc时间字符串格式 :'Y-m-d H:i:s'* @return string 本地时间字符串格式 :'Y-m-d H:i:s'*/function localToUtc(locTime) {if(locTime==='0000-00-00 00:00:00' || locTime==='0000-00-00' || locTime===null || locTime==='' || locTime===undefined) return locTime;var tmpTime = new Date();var utcTime = new Date();locTime=locTime.replace("-", "/").replace("-", "/"); //⽕狐不兼容'-'分隔⽇期//解析字符串tmpTime.setTime(Date.parse(locTime));if(locTime.length>10) {var year = tmpTime.getUTCFullYear();var month = preZero(tmpTime.getUTCMonth()+1);var date = preZero(tmpTime.getUTCDate());var hour = preZero(tmpTime.getUTCHours());var minute = preZero(tmpTime.getUTCMinutes());var second = preZero(tmpTime.getUTCSeconds());return year+'-'+month+'-'+date +' '+hour+':'+minute+':'+second;} else {//设置⽇期,保留本地时间(供UTC转换⽤)utcTime.setFullYear(tmpTime.getFullYear());utcTime.setMonth(tmpTime.getMonth());utcTime.setMonth(tmpTime.getMonth());//?若不重复,则赋值⽆效utcTime.setDate(tmpTime.getDate());var year = utcTime.getUTCFullYear();var month = preZero(utcTime.getUTCMonth()+1);var date = preZero(utcTime.getUTCDate());return year+'-'+month+'-'+date;}}//单个数字添加前导0function preZero(str) {return str.toString().length<2 ? '0'+str : str;}。
timestamp构造函数
timestamp构造函数timestamp构造函数是编程中常用的一个函数,用于生成时间戳。
时间戳是指从某个固定的时间点开始,经过了多少秒或毫秒。
在计算机领域,时间戳被广泛应用于记录事件发生的时间、计算时间间隔等场景。
本文将介绍timestamp构造函数的使用方法和一些常见的应用场景。
一、timestamp构造函数的使用方法在许多编程语言中,都提供了timestamp构造函数来生成时间戳。
不同的编程语言可能具有不同的语法,但大致的用法是相似的。
下面以几种常见的编程语言为例,分别介绍它们的timestamp构造函数的使用方法。
1. Python在Python中,可以使用time模块的time()函数来获取当前的时间戳。
示例代码如下:```import timetimestamp = time.time()print("当前时间戳为:", timestamp)```2. JavaScript在JavaScript中,可以使用Date对象的getTime()方法来获取当前的时间戳。
示例代码如下:```var timestamp = new Date().getTime();console.log("当前时间戳为:" + timestamp);```3. PHP在PHP中,可以使用time()函数来获取当前的时间戳。
示例代码如下:```$timestamp = time();echo "当前时间戳为:" . $timestamp;```二、timestamp构造函数的应用场景timestamp构造函数在编程中有许多应用场景,下面介绍其中的几个常见场景。
1. 记录事件发生的时间在许多应用中,需要记录事件发生的时间。
通过使用timestamp构造函数,可以方便地获取事件发生的时间戳,并将其存储到数据库或日志文件中。
这样就可以方便地查询事件发生的顺序,以及计算事件之间的时间间隔。
PHP时间戳格式全部汇总(获取时间、时间戳)
PHP时间戳格式全部汇总(获取时间、时间戳)PHP语⾔中的函数有许多种,各种应⽤⽅式不同,实现的功能也不尽相同。
希望对新⼿的学习有所帮助!⼀,PHP时间戳函数获取指定⽇期的unix时间戳 strtotime(”2009-1-22″) ⽰例如下:echo strtotime(”2009-1-22″) 结果:1232553600说明:返回2009年1⽉22⽇0点0分0秒时间戳⼆,PHP时间戳函数获取英⽂⽂本⽇期时间⽰例如下:便于⽐较,使⽤date将当时间戳与指定时间戳转换成系统时间(1)打印明天此时的时间戳strtotime(”+1 day”)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 day”)) 结果:2009-01-23 09:40:25(2)打印昨天此时的时间戳strtotime(”-1 day”)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 day”)) 结果:2009-01-21 09:40:25(3)打印下个星期此时的时间戳strtotime(”+1 week”)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 week”)) 结果:2009-01-29 09:40:25(4)打印上个星期此时的时间戳strtotime(”-1 week”)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 week”)) 结果:2009-01-15 09:40:25(5)打印指定下星期⼏的时间戳strtotime(”next Thursday”)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25指定时间:echo date(”Y-m-d H:i:s”,strtotime(”next Thursday”)) 结果:2009-01-29 00:00:00(6)打印指定上星期⼏的时间戳strtotime(”last Thursday”)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25指定时间:echo date(”Y-m-d H:i:s”,strtotime(”last Thursday”)) 结果:2009-01-15 00:00:00(7)打印前⼀天零点的时间戳$ystd = strtotime('-1 day'); // 昨天这个时刻的时间戳$ystd = date("Y-m-d", $ystd); // 昨天的⽇期d$ystd = strtotime($ystd." 00:00:00"); // 昨天凌晨24点整的时间戳以上PHP时间戳函数⽰例可知,strtotime能将任何英⽂⽂本的⽇期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化⽇期时间获取指定的时间戳,实现所需要的⽇期时间。
php中data函数用法
php中data函数用法在PHP中,`date(`函数是一个非常常用的函数,用于获取当前日期和时间,或者格式化给定的时间戳。
`date(`函数的基本用法如下:```php````format`参数可以是以下格式之一:-`Y`:4位数的年份(如2021)-`y`:2位数的年份-`m`:2位数的月份(01-12)-`n`:无前导零的月份(1-12)-`d`:2位数的日期(01-31)-`j`:无前导零的日期(1-31)-`H`:24小时制的小时数(00-23)-`h`:12小时制的小时数(01-12)-`i`:2位数的分钟数(00-59)-`s`:2位数的秒数(00-59)- `a`:小写的“am”或“pm”-`A`:大写的“AM”或“PM”除了上述格式之外,还可以使用以下符号进行格式化:-`t`:指定月份的天数-`L`:是否为闰年(1代表是,0代表否)- `D`:星期的缩写形式(如Mon, Tue)- `F`:月份的完整形式(如January, February)-`g`:12小时制的小时数,无前导零(1-12)-`G`:24小时制的小时数,无前导零(0-23)-`W`:ISO-8601基于周的年份中的周数(如42,表示第42周)-`U`:从UNIX纪元开始计算的秒数以下是一些常用的示例:```php//获取当前日期和时间$currentDateTime = date("Y-m-d H:i:s");//获取当前日期$currentDate = date("Y-m-d");//获取当前时间$currentTime = date("H:i:s");//格式化给定时间戳````date(`函数不仅可以用于获取当前日期和时间,还可以用于转换日期和时间的格式。
通过指定不同的`format`参数,可以将日期和时间格式化为所需的样式。
总之,`date(`函数是PHP中一个非常有用的函数,它可以方便地获取和格式化日期和时间。
php常用函数
php常用函数PHP是一种流行的服务器端脚本语言,用于Web开发。
它具有简单易学、开源免费、跨平台等特点,被广泛应用于动态网站开发、电子商务、API开发等领域。
在PHP开发中,常用函数是开发者必须掌握的基础知识,本文将介绍PHP常用函数的分类和使用。
一、字符串函数1. strlen()函数:用于计算字符串的长度,返回字符串中字符的数量。
2. strpos()函数:用于查找字符串中的某个子串,返回子串在字符串中的位置。
3. substr()函数:用于截取字符串的一部分,可以指定起始位置和长度。
4. str_replace()函数:用于替换字符串中的某个子串,可以指定替换前后的字符串。
5. strtolower()函数:用于将字符串转换为小写字母。
6. strtoupper()函数:用于将字符串转换为大写字母。
7. trim()函数:用于去除字符串两端的空格和换行符。
8. explode()函数:用于将字符串按照指定的分隔符分割成数组。
二、数学函数1. abs()函数:用于计算一个数的绝对值。
2. rand()函数:用于生成一个随机数。
3. ceil()函数:用于向上取整。
4. floor()函数:用于向下取整。
5. round()函数:用于四舍五入。
6. max()函数:用于求多个数中的最大值。
7. min()函数:用于求多个数中的最小值。
三、数组函数1. count()函数:用于计算数组中元素的个数。
2. array_push()函数:用于向数组末尾添加一个或多个元素。
3. array_pop()函数:用于从数组末尾删除一个元素。
4. array_shift()函数:用于从数组头部删除一个元素。
5. array_unshift()函数:用于向数组头部添加一个或多个元素。
6. array_merge()函数:用于将多个数组合并成一个数组。
7. array_slice()函数:用于截取数组的一部分,可以指定起始位置和长度。
PHP获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
PHP获取今⽇、昨⽇、上周、本⽉的起始时间戳和结束时间戳的⽅法php 获取今⽇、昨⽇、上周、本⽉的起始时间戳和结束时间戳的⽅法,主要使⽤到了 php 的时间函数 mktime。
下⾯⾸先还是直奔主题以⽰例说明如何使⽤ mktime 获取今⽇、昨⽇、上周、本⽉的起始时间戳和结束时间戳,然后在介绍⼀下 mktime 函数作⽤和⽤法1//php获取今⽇开始时间戳和结束时间戳2$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));3$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;4//php获取本周起始时间5$beginWeek = mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y"));6$endWeek = mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"));7//php获取昨⽇起始时间戳和结束时间戳8$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));9$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;10//php获取上周起始时间戳和结束时间戳11$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));12$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));13//php获取本⽉起始时间戳和结束时间戳14$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));15$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));PHP mktime() 函数⽤于返回⼀个⽇期的 Unix 时间戳。
PHP时间函数使用详解
PHP时间函数使⽤详解PHP开发中,关于时间函数的使⽤基本上可以说是⽆处不在,⽽PHP中操作时间的⽅法也很多,⽐如PHP时间戳、⽇期与时间戳之间的转换、获取当前⽇期、当前时间之前或之后的时间等等,下⾯我们详细讲述⼀下PHP中各种时间函数的使⽤。
⾸先需要知道的是在php中获取时间⽅法是date(),在php中获取时间戳⽅法有time()、strtotime()。
下⾯分别说明。
date() 格式为:date($format, $timestamp),format为格式、timestamp为时间戳(可选)。
time() 返回当前时间的 Unix 时间戳,没有参数。
strtotime($time, $now) 将格式化的⽇期时间或任何英⽂⽂本的⽇期时间描述解析为 Unix 时间戳。
$time 为必填,规定要解析的时间字符串;$now ⽤来计算返回值的时间戳,如果省略该参数,则使⽤当前时间。
date($format)⽤法举例:echo date('Y-m-d');输出结果:2014-12-16echo date('Y-m-d H:i:s');输出结果:2014-12-16 23:00:00echo date('Y年m⽉d⽇');输出结果:2014年12⽉16⽇要实现输出怎样的⽇期格式其实只需要按规则修改⼀下即可,下⾯是字符串格式中各个字母的含义:a - "am" 或是 "pm"A - "AM" 或是 "PM"d - ⼏⽇,⼆位数字,若不⾜⼆位则前⾯补零; 如: "01" ⾄ "31"D - 星期⼏,三个英⽂字母; 如: "Fri"F - ⽉份,英⽂全名; 如: "January"h - 12 ⼩时制的⼩时; 如: "01" ⾄ "12"H - 24 ⼩时制的⼩时; 如: "00" ⾄ "23"g - 12 ⼩时制的⼩时,不⾜⼆位不补零; 如: "1" ⾄ 12"G - 24 ⼩时制的⼩时,不⾜⼆位不补零; 如: "0" ⾄ "23"i - 分钟; 如: "00" ⾄ "59"j - ⼏⽇,⼆位数字,若不⾜⼆位不补零; 如: "1" ⾄ "31"l - 星期⼏,英⽂全名; 如: "Friday"m - ⽉份,⼆位数字,若不⾜⼆位则在前⾯补零; 如: "01" ⾄ "12"n - ⽉份,⼆位数字,若不⾜⼆位则不补零; 如: "1" ⾄ "12"M - ⽉份,三个英⽂字母; 如: "Jan"s - 秒; 如: "00" ⾄ "59"S - 字尾加英⽂序数,⼆个英⽂字母; 如: "th","nd"t - 指定⽉份的天数; 如: "28" ⾄ "31"U - 总秒数w - 数字型的星期⼏,如: "0" (星期⽇) ⾄ "6" (星期六)Y - 年,四位数字; 如: "1999"y - 年,⼆位数字; 如: "99"z - ⼀年中的第⼏天; 如: "0" ⾄ "365"time()⽤法举例:time();输出结果:1418664250(返回的结果即当前的时间戳)strtotime($time)⽤法举例:echo strtotime('2014-12-16'); 输出结果:1418688000,作⽤其实是把2014-12-16 00:00:00转化为 UNIX 时间戳strtotime()还有个很强⼤的⽤法,参数可加⼊对于数字的操作、年⽉⽇周英⽂字符,⽰例如下:echo date('Y-m-d H:i:s',strtotime('+1 day'));输出结果:2014-12-17 23:30:33(输出明天此时的时间)echo date('Y-m-d H:i:s',strtotime('-1 day'));输出结果:2014-12-15 23:30:33(昨天此时的时间)echo date('Y-m-d H:i:s',strtotime('+1 week'));输出结果:2014-12-22 23:30:33(获取下个星期此时的时间)echo date('Y-m-d H:i:s',strtotime('next Thursday'));输出结果:2014-12-18 00:00:00(获取下个星期四凌晨的时间)echo date('Y-m-d H:i:s',strtotime('last Thursday'));输出结果:2014-12-11 00:00:00(获取上个星期四凌晨的时间)以上举例就这么多了,更多的⾃⼰去变通研究吧,strtotime()⽅法可以通过英⽂⽂本的控制Unix时间戳的显⽰,⽽得到需要的时间⽇期格式。
PHP的日期和时间
PHP的⽇期和时间Unix时间戳从 Unix 纪元(格林威治时间 1970 年 1 ⽉1⽇ 00:00:00)到当前时间的秒数 .相关函数:time() --- 函数返回⼀个当前系统的时间戳mktime( ) --- 取得⼀个⽇期的 Unix 时间戳1格式:int mktime(时[,分[,秒[,⽉[,⽇[,年[,is_dst区]]]]]]);2注意:is_dst参数表⽰是否为夏时制,PHP5.10后此参数已废除。
strtotime( ) --- 将任何英⽂⽂本的⽇期时间描述解析为 Unix 时间戳1格式:int strtotime ( string$time [, int $now ]案例://系统时间戳echo "当前系统的时间戳:".time(); //秒数//mktime -- 给⼀个年⽉⽇时分秒,返还给你⼀个时间戳,⽤的⾮常少echo "获取指定⽇期2033-2-12的时间戳:".mktime(0,0,0,2,12,2033);//strtotime() -- 如果使⽤也是⽤这个echo "获取指定⽇期2034-1-1的时间戳:".strtotime('2034-1-1');echo "获取3天前的时间戳:".strtotime('-3 day');echo "获取3天后的时间戳:".strtotime('3 day');在PHP中获取⽇期和时间getdate -- 取得⽇期/时间信息格式:array getdate ( [int timestamp] )返回⼀个根据 timestamp 得出的包含有⽇期信息的结合数组。
如果没有给出时间戳则认为是当前本地时间。
数组中的单元如下:1//getdate --- 获取⽇期/时间信息2$date = getdate();//当前⽇期信息3//$date = getdate(234456768);//获取指定时间戳的⽇期信息4echo "<pre>";//格式化输出5print_r($date);//打印时间数组date -- 格式化⼀个本地时间/⽇期格式:string date ( string format [, int timestamp] )1返回将整数 timestamp 按照给定的格式字串⽽产⽣的字符串。
【php】php获取当前毫秒时间戳
【php】php获取当前毫秒时间戳最近在做⼀个智能家居项⽬的后台,需要实时上传⽤户对智能设备的配置信息到服务器,以便实现同步,因此对于时间的精确度要求⽐较⾼,最开始直接是⽤php的函数来获取时间戳,获取的时间精确到秒级别,如果客户端同时操作的话还是有可能产⽣冲突,因此建议将时间戳精度提⾼到毫秒级别,但是在php没有⾃带的函数能获取毫秒时间戳,但提供了⼀个microtime()函数,如果调⽤时不带可选参数,本函数以 "msec sec" 的格式返回⼀个字符串,其中 sec 是⾃ Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。
字符串的两部分都是以秒为单位返回的。
microtime()函数的详细说明,可以到w3chool上⾯看看《》。
<?phpecho microtime();//输出结果是//0.25139300 1138197510注意了,它的结果是分两部分的,也就是前半部分是毫秒(但是单位是秒),后半部分是秒。
现在,我们依据这个做下修改,如下:<?phplist($msec, $sec) = explode(' ', microtime());$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);这样就可以了,$msectime就是当前的毫秒数!可以将这两⾏封装成⼀个函数⽅便使⽤。
<?php//返回当前的毫秒时间戳function msectime() { list($msec, $sec) = explode(' ', microtime()); $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); return $msectime;}注意:sprintf('%.0f', $num) 是输出不含⼩数部分的浮点数事情还没有结束,我把时间戳改成毫秒级别后,再次更新数据库数据时,却提⽰超出范围,原来之前我在数据库中是⽤int型来存储time()函数获取的秒级别的时间戳,存储范围是够的,改成毫秒级别的,就得改成BIGINT类型了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码如下:
?
echo mktime (0, 0,0 ,5, 27,2000 );
?
由于不知道小时、分和秒同时这些参数必须填写,我将其设置为0。设置为0意味着时间为午夜。
下面是一个例子:
?
$date_time_array = getdate (time());
echo $date_time_array[ "weekday"];
?
返回的结果为:
Sunday
除了"weekday",该数组的其他部分为:
"seconds" –秒
"minutes" –分
"hours" –小时
“mday" - 本月的第几天
"wday" -本周的第几天(数字)
"mon" -月(数字)
"year" –年
"yday" - r本年的第几天(数字)
"month" -月份全名
我们现在可以得到容易辨认的日期和时间。那么其他呢?
**转换现在的日期为Unix的时间戳值
?
// 来自Access的字符串
$date_time_string = "2000/05/27 02:40:21 PM";
// 将字符串分解成3部分-日期、时间和上午/下午
$dt_elements = explode(" " ,$date_time_string);
// 分解日期
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
php中的日期处理
加入时间:2004-12-18 17:35:22 大小:12 KB 阅读次数:1405
PHP中的日期处理
转贴:xiaxia 日期:2004-05-26 人气:9
我正打算用PHP编写一种帮助处理系统。我发现我必须知道处理完最后一位客户的问题后已经过去了多长时间?当我过去用ASP时解决这个问题相当简 单,ASP有相应的函数DateDiff可以给出两个日期间间隔多少月、多少天和多少秒。当我搜寻完PHP手册后我发现PHP并没有类似的函数。
?
$access_date = "2000/05/27";
//explode()函数用一个字符串作为分界来分解另一个字符串。这个例子$access_date通过字符串”/”来分解
$date_elements = explode("/" ,$access_date);
// 此时
// $date_elements[0] = 2000
?
// 将目前的时间戳值放入一数组内
$timestamp = time();
echo $timestamp;
echo "p";
$date_time_array = getdate( $timestamp);
// 用mktime()函数重新产生Unix时间戳值
$timestamp = mktime($date_time_array ["hours"], $date_time_array["minutes" ],$date_time_array[ "seconds"],$date_time_array ["mon"], $date_time_array["mday" ],$date_time_array[ "year"]);
你也许会说这相当不错。当这对我毫无帮助,或者只有一点帮助。在PHP中,对日期处理的函数都必须用到由time()返回的时间戳值。同时,由于PHP在 Unix和Windows系统中均使用同样的时间戳值,这就允许你不需要修改代码即可在不同的系统间移植。另外的一个好处是time()函数返回的是一个 整数,你可以将其作为整数字段或文本字段存入数据库,而不必使用特别的日期/时间字段。
有时我们需要知道6小时以后是什么时间,35天前的日期或者从你最后一次玩Quake3后已过去多少秒。我们已经知道如何用mktime()函数从单独的 日期和时间中获得Unix的时间戳值。如果我们需要的并非目前日期和时间的Unix时间戳值,我们该咋办?下面是一些练习可以帮助说明我们后面所要做的。
正如前面所见,mktime()使用以下参数:小时、分、秒、月、天和年。想想第二节,getdate()函数可以为我们获得这些参数。
180609 Sunday 21 May
这样的结果看起来有些奇怪。让我们再查一下PHP手册,原来’h’所代表的是12 小时制的小时数。这再次证明了一句真理:“计算机只做你所告诉它该做的,而不是你想要它做的”。我们有两个选择。第一个是在h前使用转义字符“”:
echo date ("Hhi l d F", time());
$date_elements = explode("/" ,$dt_elements[ 0]);
// 分解时间
$time_elements = explode(":" ,$dt_elements[ 1]);
// 如果是下午,我们将时间增加12小时以便得到24小时制的时间
if ($dt_elements [2]== "PM") { $time_elements[ 0]+=12;}
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th","nd"
t - 指定月份的天数; 如: "28" 至 "31"
U - 总秒数
// 输出结果
echo mktime ($time_elements [0], $time_elements[ 1], $time_elements[ 2], $date_elements[1], $date_elements[2], $date_elements[0]);
?
**修改日期
这也许看起来将简化繁,但考虑一下如果你所需要的显示的为"Today is Sunday 21 May 2000. The time is somewhere close to 18h24." 我想使用date()函数无疑令人感到厌烦。
在开始的时候,我提及我们有两种方式可以从Unix时间戳值中得到有用的数据。我们刚刚了解了date()和strftime()。另一个getdate()。这个函数只需要Unix 的时间戳值作为参数,而函数的返回值为日期和时间的数组。
**得到目前的日期和时间
在Unix中,时间的表示方式为计算从1970年1月1日零时起所过去的秒数,这称为UNIX 时间戳(Unix Epoch)。
如果我们有这样一段的代码:
?
echo time();
?
将返回值958905820
而此时的时间为2000年5月21日12时43分。
你已经基本了解了Unix的时间戳值,现在让我们来展示它的实际用途。
改变日期显示的方式-日期和时间的显示形式
PHP提供两个办法来将Unix的时间戳值转换成为有用的数据。第一个是date()函数。这个函数有两个参数-第一个字符串用于设定你所希望返回的格式,第二个为Unix的时间戳值。
格式化字符串通过一些简单的特殊格式化字符来显示你所希望看到的格式的日期和时间。假设你希望日期以这样的格式显示“18h01 Sunday 21 May”。
本文包含以下内容:
1、 得到目前的日期和时间-我们有多少种方式?
2、 改变日期显示的方式-日期和时间的显示形式
3、 转换现在的日期为Unix的时间戳值
4、 改变日期
a. 增加时间
b. 减去时间
c. 找出两日期之间的间隔
5、 为PHP添加DateAdd函数
6、 为PHP添加DateDiff函数
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"