$t = time()+36008;//这里和标准时间相差8小时需要补足
$tget = $t-3600245;//比如5天前的时间
echo date("Y-m-d H:i:s 星期w",$tget);//格式按你需要选取
附带:
相关时间参数:
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里面,使用time函数获得当前的时间(年月日时分秒都有,实际上是从1970 年 1 月 1 日 00:00:00到当前时间的秒数。
那么,要获得7天前的时刻只需要当前时刻减去7天24小时/天3600秒/小时即可,也就是time()-7-243600。
例子代码:
<php$t=time();
echo date('Y-m-d H:i:s',$t)"\n";
$t-=7243600;
echo date('Y-m-d H:i:s',$t)"\n";
>
上面的代码显示:
2015-12-17 13:29:59
2015-12-10 13:29:59
如果你只需要到天,不需要时分秒,那么date函数的第一个参数改为'Y-m-d'即可。
你要实现的是不是当前月份和当前月份往前5个月,每个月的第一天是几号号最后一天是几号?如果是的话,我写了一个 能实现你的需求。你的问题让我好纠结。
$currentTime = time();$cyear = floor(date("Y",$currentTime));
$cMonth = floor(date("m",$currentTime));
for($i=0;$i<6;$i++){
$nMonth = $cMonth-$i;
$cyear = $nMonth == 0 ($cyear-1) : $cyear;
$nMonth = $nMonth <= 0 12+$nMonth : $nMonth;
$date = $cyear"-"$nMonth"-1";
$firstday = date('Y-m-01', strtotime($date));
$lastday = date('Y-m-t', strtotime($date));
echo $cyear"年"$nMonth"月";
echo "第一天:"$firstday;
echo "最后一天:"$lastday,"<br>";
}
复制代码
代码如下:
echo
date("Ymd",strtotime("now")),
"\n";
echo
date("Ymd",strtotime("-1
week
Monday")),
"\n";
echo
date("Ymd",strtotime("-1
week
Sunday")),
"\n";
echo
date("Ymd",strtotime("+0
week
Monday")),
"\n";
echo
date("Ymd",strtotime("+0
week
Sunday")),
"\n";
//date('n')
第几个月
//date("w")
本周周几
//date("t")
本月天数
echo
'<br>上周:<br>';
echo
date("Y-m-d
H:i:s",mktime(0,
0
,
0,date("m"),date("d")-date("w")+1-7,date("Y"))),"\n";
echo
date("Y-m-d
H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))),"\n";
echo
'<br>本周:<br>';
echo
date("Y-m-d
H:i:s",mktime(0,
0
,
0,date("m"),date("d")-date("w")+1,date("Y"))),"\n";
echo
date("Y-m-d
H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))),"\n";
echo
'<br>上月:<br>';
echo
date("Y-m-d
H:i:s",mktime(0,
0
,
0,date("m")-1,1,date("Y"))),"\n";
echo
date("Y-m-d
H:i:s",mktime(23,59,59,date("m")
,0,date("Y"))),"\n";
echo
'<br>本月:<br>';
echo
date("Y-m-d
H:i:s",mktime(0,
0
,
0,date("m"),1,date("Y"))),"\n";
echo
date("Y-m-d
H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y"))),"\n";
$getMonthDays
=
date("t",mktime(0,
0
,
0,date('n')+(date('n')-1)%3,1,date("Y")));//本季度未最后一月天数
echo
'<br>本季度:<br>';
echo
date('Y-m-d
H:i:s',
mktime(0,
0,
0,date('n')-(date('n')-1)%3,1,date('Y'))),"\n";
echo
date('Y-m-d
H:i:s',
mktime(23,59,59,date('n')+(date('n')-1)%3,$getMonthDays,date('Y'))),"\n";
/
获取指定日期之间的各个月
/
public function get_months($sdate, $edate) {
$range_arr = array();
do {
$monthinfo = $this->get_monthinfo_by_date($sdate);
$end_day = $monthinfo['month_end_day'];
$start = $this->substr_date($monthinfo['month_start_day']);
$end = $this->substr_date($monthinfo['month_end_day']);
$range = "{$start} ~ {$end}";
$range_arr[] = $range;
$sdate = date('Y-m-d', strtotime($sdate'+1 month'));
}while($end_day < $edate);
return $range_arr;
}
/
截取日期中的月份和日
@param string $date
@return string $date
/
public function substr_date($date) {
if ( ! $date) return FALSE;
return date('m-d', strtotime($date));
}
/
检查日期的有效性 YYYY-mm-dd
@param array $date_arr
@return boolean
/
public function check_date($date_arr) {
$invalid_date_arr = array();
foreach ($date_arr as $row) {
$timestamp = strtotime($row);
$standard = date('Y-m-d', $timestamp);
if ($standard != $row) $invalid_date_arr[] = $row;
}
if ( ! empty($invalid_date_arr)) {
die("invalid date -> "print_r($invalid_date_arr, TRUE));
}
}
^\d{4}(年|\-|\)(0[1-9]|1[0-2])(月|\-|\)(0[1-9]|[1-2]\d|3[0-1])日$
这种是还是有缺陷的你可以看到最后一个,还有就是2月31日这样的也会被匹配的。不过应对一般日期还是可以的。
本文实例讲述了PHP日期与时间 *** 作技巧。分享给大家供大家参考,具体如下:
Demo1php
<php
//验证时间
//checkdate()
1月份
2日
3年
//checkdate()
判断这个日期是否是合法的日期
//不合法的日期,试一试
if(checkdate(7,16,2010)){
echo
'这个日期是合法有效的';
}else{
echo
'这个日期是非法的。';
}
>
Demo2php
<php
//date
--
格式化一个本地时间/日期
//date(),
彻底研究一下
//date()
可以存放两个参数,第一参数是日期和时间的格式化,[第二参数是时间戳]
//Y
表示四位数的年份,
y表示二位数的年份
//M
表示英文的月份缩写,m
表示阿拉伯数字的月份
//D
表示英文下的星期几缩写,d
表示阿拉伯数字的日
//第一个参数的格式化可以放一些无关紧要的字符串
//只要无关紧要的字符串不再
format
的目录里,就不会被识别
//echo
date('现在的日期是:Y-m-d');
//现在的日期是:2015-04-20
//时分秒
=
H
表示24小时制的小时,
//明明是
19
,为什么显示
11
点呢,东八区,差
8
个小时
//现在没有经过任何设置,所以时间在默认时区上
//echo
date('现在的日期是:Y-m-d
H:i:s');
//重点是年月日,时分秒
echo
date('r');
echo
date('现在的日期是:Y-m-d
H:i:sa');
>
Demo3php
<php
//取得当前的时间,返回一个数组
//"sec"
-
自
Unix
纪元起的秒数
//"usec"
-
微秒数
//"minuteswest"
-
格林威治向西的分钟数
//"dsttime"
-
夏令时修正的类型
//print_r(gettimeofday());
//第一数组的元素就是时间戳
//gettimeofday()
就是取得的当前时间的时间戳
//$a
=
gettimeofday();
//sec
取得当前时间的时间戳
//转换成人可以看得懂的时间
//第二个参数,对于本例来讲,放与不放,是一样的。
//echo
date('Y-m-d
H:i:s',$a['sec']);
print_r(gettimeofday(0));
echo
gettimeofday(1);
>
Demo4php
<php
//将时间戳转换成人可以看的懂的时间
//date()
函数的第二个参数就是时间戳
//如果第二个参数省略了,那么就返回当前时间
//如果第二个参数没有省略,那么就返回那个时间戳的时间
echo
date('Y-m-d
H:i:s',24554457865);
>
Demo5php
<php
//getdate()
也可以转换时间戳
//print_r(getdate());
//Array
(
[seconds]
=>
26
[minutes]
=>
34
[hours]
=>
10
[mday]
=>
20
[wday]
=>
1
[mon]
=>
4
//[year]
=>
2015
[yday]
=>
109
[weekday]
=>
Monday
[month]
=>
April
[0]
=>
1429526066
)
$t
=
getdate();
echo
$t['year'];
//传递一个时间戳
print_r(getdate(1029526066));
>
Demo6php
<php
//直接获取当前时间戳
//echo
time();//1429526328
//这个
time()
可以调整时间
//大家可以发现
time()
很有用处,可以过去现在和将来
echo
date('Y-m-d
H:i:s',time()+60608);
>
Demo7php
<php
//获取特定指定时间的时间戳
//这是当前的时间戳
//echo
time();
//我要取得
2008-08-08
08:08:08
$beijing2008
=
mktime(8,8,8,8,8,2008);
echo
date('Y-m-d
H:i:s',$beijing2008);
>
Demo8php
<php
//使用时间戳计算时间差
$now
=
time();//当前的时间戳
$wnow
=
mktime(0,0,0,8,16,2016);
//两个时间戳相减可以得到差秒
echo
round(($wnow
-
$now)/60/60,2)'相差这几个小时';
>
Demo9php
<php
//将人可读的时间,字符串形式,转换成时间戳
$a
=
strtotime('2010-7-16
15:15:15')-strtotime('2010-7-16
15:14:15');
if($a
>=
60){
echo
'请这位先生休息一会。';
}else{
echo
$a;
}
>
Demo10php
<php
//获取当前文件的修改时间戳
echo
date('Y-m-d
H:i:s',getlastmod());
>
Demo11php
<php
//配置系统环境变量
echo
date('Y-m-d
H:i:s');
echo
'<br/>';
//我开始设置时区
putenv('Tz=Asia/Shanghai');
echo
date('Y-m-d
H:i:s');
>
Demo12php
<php
//putenv('Tz=Asia/Shanghai');
//获取当前时区
echo
date_default_timezone_get();
echo
'<br/>';
//开始配置默认时区
date_default_timezone_set('Asia/Shanghai');
echo
date('Y-m-d
H:i:s')
;
echo
'<br/>';
echo
date_default_timezone_get();
>
Demo13php
<php
date_default_timezone_set('Asia/Shanghai');
//"tm_sec"
-
秒数
//"tm_min"
-
分钟数
//"tm_hour"
-
小时
//"tm_mday"
-
月份中的第几日
//"tm_mon"
-
年份中的第几个月,从
0
开始表示一月
//"tm_year"
-
年份,从
1900
开始
//"tm_wday"
-
星期中的第几天
//"tm_yday"
-
一年中的第几天
//"tm_isdst"
-
夏令时当前是否生效
print_r(localtime(time(),true));
//Array
(
[tm_sec]
=>
37
[tm_min]
=>
15
[tm_hour]
=>
19
//[tm_mday]
=>
20
[tm_mon]
=>
3
[tm_year]
=>
115
//[tm_wday]
=>
1
[tm_yday]
=>
109
[tm_isdst]
=>
0
)
>
Demo14php
<php
//返回时间戳和微秒数
//怎么计算页面运行加载时间
//页面打开的时候获取一个时间
//页面结束的时候获取一个时间
//用结束的时间减去打开的时间,那么就是运行时间
//
list($a,$b)=explode('
',microtime());
//
echo
$b;
function
fn(){
list($a,$b)=explode('
',microtime());
return
$a+$b;
//返回出精确的秒数
}
//在页面打开的时候,获取一个时间
$start_time
=
fn();
for($i=0;$i<10000000;$i++){
//
}
//页面结束的时候,获取一个时间
$end_time
=
fn();
echo
round(($end_time
-
$start_time),4);
>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array) *** 作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库 *** 作入门教程》及《php常见数据库 *** 作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
以上就是关于请问哪位高手,如何用php获取当前日期的7天内的时间,比如今天是5号,我想获取5号前7天的日期,怎么获取全部的内容,包括:请问哪位高手,如何用php获取当前日期的7天内的时间,比如今天是5号,我想获取5号前7天的日期,怎么获取、用PHP怎么取得7天前的日期、php中如何获取最近六个月每个月的起始时间和结束时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)