PHP中显示本地时间
- 格式:doc
- 大小:27.50 KB
- 文档页数:3
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 中,我们可以通过一些方法来获取用户所在的时区信息,从而满足这一需求。
二、使用`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获取当前日期和时间及格式化方法参数,本文先是讲解了获取当前日期时间的方法,其后总结了格式化参数,需要的朋友可以参考下.使用函式 date() 实现复制代码代码如下:<?php echo $showtime=date("Y-m-d H:i:s");?>显示的格式: 年-月-日小时:分钟:秒相关时间参数: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"【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```。
thinkphp关于时间的查询方法在ThinkPHP框架中,可以使用日期和时间函数来执行与时间相关的查询。
以下是一些常用的时间查询方法:1. 获取当前时间:```php$current_time = time(); // 返回当前时间戳```2. 格式化时间:```php$timestamp = time();$formatted_time = date('Y-m-d H:i:s', $timestamp); // 将时间戳格式化为日期时间字符串,例如 " 12:34:56"```3. 查询特定时间范围内的数据:假设你有一个名为`users`的表,其中包含`create_time`字段表示用户创建时间,可以使用以下方法查询某个时间范围内的用户:```php// 查询创建时间在指定日期范围内的用户$start_time = strtotime('');$end_time = strtotime('');$users = Db::name('users')->where('create_time', '>=', $start_time)->where('create_time', '<=', $end_time)->select();```4. 查询特定日期的数据:使用`strtotime`函数将日期字符串转换为时间戳,然后使用`where`方法进行查询。
例如,查询创建时间为指定日期的用户:```php$date = '';$timestamp = strtotime($date);$users = Db::name('users')->where('create_time', '=', $timestamp)->select();```5. 查询今天之前或之后的数据:使用`today`函数获取当前日期,然后使用`where`方法进行查询。
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程序设计有所帮助。
本文实例讲述了thinkPHP+PHPExcel实现读取文件日期的方法。
分享给大家供大家参考,具体如下:我们使用PHPExcel读取excel文件后发现,时间都是类似于这样的数字:41890.620138889,那么如何将它处理成我们想要的2014-09-08 14:53:00这样格式的日期呢,看代码:V endor('PHPExcel.PHPExcel.IOFactory');$inputFileName = 'Public/demo/demo.xls';$objReader = new PHPExcel_Reader_Excel5();$objPHPExcel = $objReader->load($inputFileName);$sheet = $objPHPExcel->getSheet(0);$highestRow = $sheet->getHighestRow(); // 取得总行数$highestColumn = $sheet->getHighestColumn(); // 取得总列数$tempArray = array();for($j=2;$j<=$highestRow;$j++){ for($k='A';$k<=$highestColumn;$k++){ if($k=='H'){//指定H列为时间所在列 $tempArray[] = gmdate("Y-m-d H:i:s", PHPExcel_Shared_Date::ExcelToPHP($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue())); }else{ $tempArray[] = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue(); } echo "<pre>"; print_r($tempArray); unset($tempArray); echo "</pre>"; }}PHPExcel_Shared_Date类中的ExcelToPHP函数为关键部分!希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
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;}。
PHP中显示本地时间
∙2009年6月14日
∙1,194 views
∙PHP & Mysql
∙没有评论
如何让php显示本地时间2007-09-10 07:53许多编程的朋友在使用php中的date()函数时,显示出来的时间都与本地时间不一样。
那是因为PHP5默认为格林威治时间,与北京时间相差8个小时。
在php.ini中,将“;date.timezone =”,改成“date.timezone = PRC”,重启WEB服务。
或在date()函数前加上date_default_timezone_set(‘PRC’);语句。
PHP中其它与时间相关的函数:
mktime —取得一个日期的 UNIX 时间戳
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
time —返回当前的 UNIX 时间戳(格林威治时间 1970 年 1 月 1 日
00:00:00)
int time ( void )
date —格式化一个本地时间/日期
string date ( string format [, int timestamp] )
format 字符说明
a 小写的上午和下午值 am 或 pm
A 大写的上午和下午值 AM 或 PM
d 月份中的第几天,有前导零的 2 位数字 01 到 31
D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun
F 月份,完整的文本格式,例如 January 或者 March January 到 December
g 小时,12 小时格式,没有前导零 1 到 12
G 小时,24 小时格式,没有前导零 0 到 23
h 小时,12 小时格式,有前导零 01 到 12
H 小时,24 小时格式,有前导零 00 到 23
i 有前导零的分钟数 00 到 59>
j 月份中的第几天,没有前导零 1 到 31
l(“L”的小写字母)星期几,完整的文本格式 Sunday 到 Saturday
m 数字表示的月份,有前导零 01 到 12
M 三个字母缩写表示的月份 Jan 到 Dec
n 数字表示的月份,没有前导零 1 到 12
s 秒数,有前导零 00 到 59>
w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
Y 4 位数字完整表示的年份例如:1999 或 2003
y 2 位数字表示的年份例如:99 或 03
gmmktime —取得 GMT 日期的 UNIX 时间戳
int gmmktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
和 mktime() 完全一样,只除了返回值是格林威治标准时的时间戳。
参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。
注: 在 Microsoft Windows 系列的操作系统中实现本函数的系统库是坏的gmdate —格式化一个 GMT/UTC 日期/时间
string gmdate ( string format [, int timestamp] )
同 date() 函数完全一样,只除了返回的时间是格林威治标准时(GMT)。
例如当在中国(GMT +0800)运行以下程序时,第一行显示“Jan 01 2000 00:00:00”而第二行显示“Dec 31 1999 16:00:00”。
注: 在 Microsoft Windows 系列的操作系统中实现本函数的系统库是坏的strftime –
根据区域设置格式化本地时间/日期
string strftime ( string format [, int timestamp] )
返回用给定的格式字串对给出的 timestamp 进行格式输出后的字符串。
如果没有给出时间戳则用当前的本地时间。
月份和星期几以及其它和语言有关的字符串写法和用 setlocale() 设定的当前的区域有关。
格式字串能识别下列转换标记:
%a –当前区域星期几的简写
%A –当前区域星期几的全称
%b –当前区域月份的简写
%B –当前区域月份的全称
%c –当前区域首选的日期时间表达
%C –世纪值(年份除以 100 后取整,范围从 00 到 99)
%d –月份中的第几天,十进制数字(范围从 01 到 31)
%D –和 %m/%d/%y 一样
%e –月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从‘ 1′到‘31′)
%g –和 %G 一样,但是没有世纪
%G – 4 位数的年份,符合 ISO 星期数(参见 %V)。
和 %V 的格式和值一样,只除了如果 ISO 星期数属于前一年或者后一年,则使用那一年。
%h –和 %b 一样
%H – 24 小时制的十进制小时数(范围从 00 到 23)
%I – 12 小时制的十进制小时数(范围从 00 到 12)
%j –年份中的第几天,十进制数(范围从 001 到 366)
%m –十进制月份(范围从 01 到 12)
%M –十进制分钟数
%n –换行符
%p –根据给定的时间值为 `am’或 `pm’,或者当前区域设置中的相应字符串
%r –用 a.m. 和 p.m. 符号的时间
%R – 24 小时符号的时间
%S –十进制秒数
%t –制表符
%T –当前时间,和 %H:%M:%S 一样
%u –星期几的十进制数表达 [1,7],1 表示星期一
%U –本年的第几周,从第一周的第一个星期天作为第一天开始
%V –本年第几周的 ISO 8601:1988 格式,范围从 01 到 53,第 1 周是本年第一个至少还有 4 天的星期,星期一作为每周的第一天。
(用 %G 或者 %g 作为指定时间戳相应周数的年份组成。
)
%W –本年的第几周数,从第一周的第一个星期一作为第一天开始
%w –星期中的第几天,星期天为 0
%x –当前区域首选的时间表示法,不包括时间
%X –当前区域首选的时间表示法,不包括日期
%y –没有世纪数的十进制年份(范围从 00 到 99)
%Y –包括世纪数的十进制年份
%Z –时区名或缩写
%% –文字上的 `%’字符
gmstrftime –
根据区域设置格式化 GMT/UTC 时间/日期
string gmstrftime ( string format [, int timestamp] )
和 strftime() 的行为相同,只除了返回时间是格林威治标准时(GMT)。
strtotime –
将任何英文文本的日期时间描述解析为 UNIX 时间戳
int strtotime ( string time [, int now] )
本函数预期接受一个包含英文日期格式的字符串并尝试将其解析为 UNIX 时间戳。
如果 time 的格式是绝对时间则 now 参数不起作用。
如果 time 的格式是相对时间则其所相对的时间由 now 提供,或者如果未提供 now 参数时用当前时间。
失败时返回 -1。