PHP でのいくつかの一般的な時間間隔情報の取得方法

XuPing.Yang
リリース: 2021-08-16 13:34:55
オリジナル
476 人が閲覧しました

プロジェクトを開発しているときに、数日前、数日後、今日、今週などの開始時刻と終了時刻を取得したり、前の月を取得したり、数を取得したりするという問題に遭遇することがあります。今年の日数など。以下は私がまとめたものです。いくつかの一般的な時間関連のメソッドが皆さんの役に立てば幸いです:

1. 過去の月を取得します

public function toSelfMonth($m){
$today = input('param.today') ? input('param.today') : date("Y-m-d");
$arr = array();
$old_time = strtotime('-'.$m.' month',strtotime($today));
for ($i = 0;$i $t = strtotime("+$i month",$old_time);
$arr[]=date('Y-m' ,$t);
}
return $arr;
}

2. 過去数日間の日付を取得します

public function toSelfDay($m) ){
$today = input('param.today' ) ? input('param.today') : date("Y-m-d");
$arr = array();
$old_time = strtotime('-'.$ m.' 日',strtotime($today));
for($i = 0;$i $t = strtotime("+$i 日",$old_time );
$arr[]=date('Y-m- d',$t);
}
return $arr;
}

3. 過去の月の日数を計算します

function getLastMonthDays($month){
$arr = $this-> ;toSelfMonth($month);
$y = date('Y',time());
$days = date('d',time() );
for ($i=0;$i $days = $days + date('t', strtotime($arr[$i]."-01 "));
}
return $days;
}
4. 特定の月の日数を取得します
public function getSelfMonthDays(){
/*$days = cal_days_in_month(CAL_GREGORIAN, 4, 2011);* /
$days = date('t', strtotime("2011-4- 1"));
/*$days = date("t");
echo "今月の日数".$ days."
";*/
return $days;
}

5. 指定した年と月の開始タイムスタンプと終了タイムスタンプを取得します

public function getSelfMonthStartEnd($y=0, $m=0){
$y = $y ? $y : date('Y');
$m = $m ? $m : date('m');
$d = date('t', strtotime($y.'-'.$m));
return array("start"=> strtotime($y.'-'.$m),"end"=>mktime(23,59,59 ,$m,$d,$y));
}

6. 日付間隔を取得する

時間間隔を取得するには、まず時間をタイムスタンプに変換する必要があります。タイムスタンプは通常、秒単位で測定されます。 , したがって、次の測定単位が得られます:

(1) 1 時間は 3600 秒です

(2) 1 日は 24*3600 秒、つまり 86400 秒です

これら 2 つの条件に従って、次の方法が得られます

function GetDateLong($time1,$time2){

if($time2 >= $time1){
$long = $time2 - $time1;
}else{
$long = -($time2 - $time1);
}
if($long > 0){
$year_day = $this->Get YearDay($time1);
$ year = Floor($long/($year_day*86400));
$day = Floor( ($long)%($year_day*86400)/86400);
if($year >= 1){
$ 年。$ 日。'天国'
} else {
$ 日を返します。閏年かどうかを取得します



1年が365日ある場合は平年、1年が366日ある場合は閏年です。

1. 通常の閏年: グレゴリオ暦の年は 4 の倍数で、通常は閏年です。 (たとえば、2004 年はうるう年です); 2. 世紀のうるう年: グレゴリオ暦の年は 100 で、うるう年になるには 400 の倍数でなければなりません (たとえば、1900 年は世紀のうるう年ではありません)。ただし、2000 年は世紀の閏年です)。

この条件によれば、平年か閏年かを取得するメソッドは以下のようになります

public function Get YearType($year){
if ($year%4==0&&($year%100 !=0 || $year% 400==0)){
1 を返す;

2 を返す }

}

8. 1 年が何日かを決める


上記の 7 の紹介と同じです。グレゴリオ暦の年は 4 の倍数で、通常は閏年です。グレゴリオ暦の年は 100 単位で数えられ、うるう年にするには 400 の倍数でなければなりません。

この条件に従って、1年の日数を取得するメソッドが完成します

public function Get YearDay($time){
$year = date("Y",$time);
$a1 = $年/100;
if($a1 == 0){
$b1 = $年/400;
$b1 = $年/400;
if($b1 > 0){
$long = 365;
} else{
$long = 366; }
}else{
$b2 = $year/4;
if($b2 == 0){
$long = 366;
--
}
return $long;
}


以上がPHP でのいくつかの一般的な時間間隔情報の取得方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
1
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート