‘壹’ php时间datetime格式,怎么只取月份和只取天数呢
data(Y-m-d)获取某年某月某日,
data(Y-m-d H:i:s)获取年月日时分秒
‘贰’ 使用PHP如何获取某个月的所有日期
$j = date("t"); //获取当前月份天数
$start_time = strtotime(date('Y-m-01')); //获取本月第一天时间戳
$array = array();
for($i=0;$i<$j;$i++){
$array[] = date('Y-m-d',$start_time+$i*86400); //每隔一天赋值给数组
}
print_r($array);
‘叁’ php应用:获取日期正则表达式:\\d{4}[年|\-|\.]\d{\1-\12}[月|\-|\.]\d{\1-\31}日
^d{4}(年|-|.)(0?[1-9]|1[0-2])(月|-|.)(0?[1-9]|[1-2]d|3[0-1])日?$
这种是还是有缺陷的你可以看到最后一个,还有就是2月31日这样的也会被匹配的。不过应对一般日期还是可以的。
‘肆’ PHP 如何获取两个时间之间的年和月份
$time1 = strtotime('2014-02-04'); // 自动为00:00:00 时分秒
$time2 = strtotime('2015-02-06');
$monarr = array();
$monarr[] = '2014-02'; // 当前月;
while( ($time1 = strtotime('+1 month', $time1)) <= $time2){
$monarr[] = date('Y-m',$time1); // 取得递增月;
}
print_r($monarr);
‘伍’ php 怎样输出18年5月份 每个星期一的日期
function test()
{
$arr = [];
//首先获取18年5月1日0点的时间戳
$time = mktime(0,0,0,5,1,2018);
//循环18年5月的每一天,并判断是否星期一
//这里还有一个思路:找出第一个星期一,结束循环,然后根据第一个星期一的时间戳+7*86400取出第二个,依次类推,当时间超出31日时结束,可以尝试自己写一下。
for ($i = 0 ; $i < 31 ; $i ++)
{
$week = date("w",$time + $i * 86400);
if ($week == 1)
{
$arr[] = date('Y-m-d' , $time + $i * 86400);
}
}
var_mp($arr);
//输出array(4) { [0]=> string(10) "2018-05-07" [1]=> string(10) "2018-05-14" [2]=> string(10) "2018-05-21" [3]=> string(10) "2018-05-28" }
}
‘陆’ php怎样获取日期中的月份
示例代码如下:
<?php
//日期
$date="2016-11-1111:11:11";
//转换成时间戳
$timestrap=strtotime($date);
//格式化,取出月份
echodate('m',$timestrap);
‘柒’ PHP下获取上个月、下个月、本月的日期
因为工作需要需要获取上个月、下个月、本月的日期,特从网站找到了实现代码,特分享下,方便需要的朋友
今天写程序的时候,突然发现了很早以前写的获取月份天数的函数,经典的switch版,但是获得上月天数的时候,我只是把月份-1了,估计当时太困了吧,再看到有种毛骨悚然的感觉,本来是想再处理一下的,但是一想肯定还有什么超方便的方法,于是找到了下面这个版本,做了一点小修改。
获取本月日期:
代码如下:
function
getMonth($date){
$firstday
=
date("Y-m-01",strtotime($date));
$lastday
=
date("Y-m-d",strtotime("$firstday
+1
month
-1
day"));
return
array($firstday,$lastday);
}
$firstday是月份的第一天,假如$date是2014-2这样的话,$firstday就会是2014-02-01,然后根据$firstday加一个月就是2014-03-01,再减一天就是2014-02-28,用date()和strtotime()真是太方便了。
获取上月日期:
代码如下:
function
getlastMonthDays($date){
$timestamp=strtotime($date);
$firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01'));
$lastday=date('Y-m-d',strtotime("$firstday
+1
month
-1
day"));
return
array($firstday,$lastday);
}
上月日期需要先获取一个时间戳,然后在月份上-1就OK了,超智能的date()会把2014-0-1这种东西转换成2013-12-01,太爽了。
获取下月日期:
代码如下:
function
getNextMonthDays($date){
$timestamp=strtotime($date);
$arr=getdate($timestamp);
if($arr['mon']
==
12){
$year=$arr['year']
+1;
$month=$arr['mon']
-11;
$firstday=$year.'-0'.$month.'-01';
$lastday=date('Y-m-d',strtotime("$firstday
+1
month
-1
day"));
}else{
$firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01'));
$lastday=date('Y-m-d',strtotime("$firstday
+1
month
-1
day"));
}
return
array($firstday,$lastday);
}
下月日期的代码看起来比较长一点,因为date()转不了类似2014-13-01这种东西,它会直接回到1970,所以前面需要处理一下12月的问题,除了12月就直接月份+1就OK啦。
总得来说,还是很方便的,日期函数太强大了。