php已知日期获取星期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php已知日期获取星期相关的知识,希望对你有一定的参考价值。

我利用如下代码获取星期,可不知道为什么,不管日期改成什么,星期获取的都是 星期四,怎么回事.

代码如下:

<?
$weekarray=array("日","一","二","三","四","五","六");
echo "星期".$weekarray[date("w","2010-3-12")];
?>

php 获取指定日期的星期方法如下:

<?php
    header("Content-type: text/html; charset=utf-8");
   //获取星期方法
    function   get_week($date)
        //强制转换日期格式
        $date_str=date(\'Y-m-d\',strtotime($date));
   
        //封装成数组
        $arr=explode("-", $date_str);
        
        //参数赋值
        //年
        $year=$arr[0];
        
        //月,输出2位整型,不够2位右对齐
        $month=sprintf(\'%02d\',$arr[1]);
        
        //日,输出2位整型,不够2位右对齐
        $day=sprintf(\'%02d\',$arr[2]);
        
        //时分秒默认赋值为0;
        $hour = $minute = $second = 0;   
        
        //转换成时间戳
        $strap = mktime($hour,$minute,$second,$month,$day,$year);
        
        //获取数字型星期几
        $number_wk=date("w",$strap);
        
        //自定义星期数组
        $weekArr=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
        
        //获取数字对应的星期
        return $weekArr[$number_wk];
    
    
    //测试
    $date="2015-12-10";
    echo get_week($date);
    //星期四
?>
参考技术A date第二个参数应该是时间戳
mktime函数生成时间戳,原型如下:int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )

echo "星期".$weekarray[date("w",mktime(0,0,0,3,12,2010))];

还可参考strtotime()函数
参考技术B $weekarray=array("日","一","二","三","四","五","六");

echo "星期".$weekarray[date('w',"20102010-3-12")];

你写的没错,再调调。
参考技术C echo date('w',strtotime('2010-03-10'));本回答被提问者和网友采纳

PHP获取日期对应星期一周日期星期开始与结束日期的方法

获取日期对应的星期
/*
 * 获取日期对应的星期
 * 参数$date为输入的日期数据,格式如:2018-6-22
 */
function  get_week($date){	
	$date_str=date(‘Y-m-d‘,strtotime($date));//强制转换日期格式	
	$arr=explode("-", $date_str);//封装成数组
	//参数赋值	
	$year=$arr[0];//年	
	$month=sprintf(‘%02d‘,$arr[1]);    //月,输出2位整型,不够2位右对齐	
	$day=sprintf(‘%02d‘,$arr[2]);//日,输出2位整型,不够2位右对齐	
	$hour = $minute = $second = 0;//时分秒默认赋值为0;	
	$strap = mktime($hour,$minute,$second,$month,$day,$year);//转换成时间戳	
	$number_wk=date("w",$strap);//获取数字型星期几
	//自定义星期数组
	$weekArr=array("周日","周一","周二","周三","周四","周五","周六");
	//获取数字对应的星期
	return $weekArr[$number_wk];
}

  

获取一周日期
  /**
     * 获取一周日期
     * @param $time 时间戳
     * @param $format 转换格式
     */
    function get_week_arr($time=0, $format = "Y-m-d"){
        if(!$time){
            $time = time();
        }
        $week = date(‘w‘, $time);
        $weekname = array(‘星期一‘, ‘星期二‘, ‘星期三‘, ‘星期四‘, ‘星期五‘, ‘星期六‘, ‘星期日‘);
        //星期日排到末位
        if (empty($week)) {
            $week = 7;
        }
        for ($i = 0; $i <= 6; $i++) {
            $currDay = $i+1-$week;
            $data[$i][‘date‘] = date($format, strtotime("+{$currDay} days", $time));
            $data[$i][‘week‘] = $weekname[$i];
        }
        return $data;
    }

  

获取某星期的开始时间和结束时间
  /*
     * 获取某星期的开始时间和结束时间
     * time 时间
     * first 表示每周星期一为开始日期 0表示每周日为开始日期
     */
    function getWeekMyActionAndEnd($time = ‘‘, $first = 1){
        //当前日期
        if(!$time){
            $time = time();
        }
        $sdefaultDate = date("Y-m-d", $time);
        //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
        $w = date(‘w‘, strtotime($sdefaultDate)); //获取当前周的第几天 周日是 0 周一到周六是 1 - 6
        $days = $w ? $w - $first : 6;   //获取本周开始日期,如果$w是0,则表示周日,减去 6 天
        $week_start = date(‘Y-m-d‘, strtotime("{$sdefaultDate} -{$days} days"));
        $week_end = date(‘Y-m-d‘, strtotime("{$week_start} +6 days"));   //本周结束日期
        return array("week_start" => $week_start, "week_end" => $week_end);
    }

  

 

以上是关于php已知日期获取星期的主要内容,如果未能解决你的问题,请参考以下文章

php获取星期几

php获取指定日期星期几

PHP获取一年中的每星期的开始日期和结束日期

PHP获取一年中的每星期的开始日期和结束日期

php 获取未来七天的日期和星期

如何在php中获取上周的日期(星期二或其他日期)?