目次
phpは、指定された日付の間の各週と月の開始時刻と終了時刻を取得します、php date
ホームページ バックエンド開発 PHPチュートリアル phpは、指定された日付間の各週と月の開始時刻と終了時刻を取得します。php date_PHPチュートリアル

phpは、指定された日付間の各週と月の開始時刻と終了時刻を取得します。php date_PHPチュートリアル

Jul 13, 2016 am 10:13 AM
php

phpは、指定された日付の間の各週と月の開始時刻と終了時刻を取得します、php date

前後2つの日付を指定して、その間の各週の開始時刻と終了時刻、および各月の開始時刻と終了時刻を計算します

ログフォーマットクラスDate.class.php

コードをコピーします コードは次のとおりです:

<?php
クラスDatefmt{
   関数 __construct() {}
  /**
* 指定した日付に基づいて週の開始時刻と終了時刻を取得します
​*/
  パブリック関数 get_weekinfo_by_date($date) {
    $idx = strftime("%u", strtotime($date));
    $mon_idx = $idx - 1;
    $sun_idx = $idx - 7;
    配列を返します(
      'week_start_day' => strftime('%Y-%m-%d', strtotime($date) - $mon_idx * 86400),
      'week_end_day' => strftime('%Y-%m-%d', strtotime($date) - $sun_idx * 86400),
      );
  }
  /**
* 指定した日付に基づいて月の開始時刻と終了時刻を取得します
​*/
  パブリック関数 get_monthinfo_by_date($date){
    $ret = array();
    $timestamp = strtotime($date);
    $mdays = date('t', $timestamp);
    配列を返します(
      'month_start_day' => date('Y-m-1', $timestamp),
      'month_end_day' => date('Y-m-'.$mdays, $timestamp)
      );
  }
  /**
* 指定した日付の間の週を取得します
​*/
  パブリック関数 get_weeks($sdate, $edate) {
    $range_arr = array();
    // 检查日期有效性
    $this->check_date(array($sdate, $edate));
    // 各周の開始時間を計算します
    やります{
      $weekinfo = $this->get_weekinfo_by_date($sdate);
      $end_day = $weekinfo['week_end_day'];
       $start = $this->substr_date($weekinfo['week_start_day']);
      $end = $this->substr_date($weekinfo['week_end_day']);
      $range = "{$start} ~ {$end}";
      $range_arr[] = $range;
       $sdate = date('Y-m-d', strtotime($sdate)+7*86400);
    }while($end_day < $edate);
    $range_arr を返します;
  }
  /**
* 指定した日付の間の毎月を取得します
​*/
  パブリック関数 get_months($sdate, $edate) {
    $range_arr = array();
    やります{
      $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);
    $range_arr を返します;
  }
  /**
* 傍受された日付の月日
* @param string $date
* @return string $date
​*/
  パブリック関数 substr_date($date) {
    if ( ! $date) は FALSE;
を返します     return date('m-d', strtotime($date));
  }
  /**
* 日付の有効性を確認 YYYY-mm-dd
* @param 配列 $date_arr
* @return boolean
​*/
  パブリック関数 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("無効な日付 -> ".print_r($invalid_date_arr, TRUE));
    }
  }
}

クラスファイルの使用

复制代価代価如下:

<?php
require_once "Datefmt.class.php";
$datefmt = 新しい Datefmt();
// 11 月 1 日から 30 日までの週を出力します
var_dump($datefmt->get_weeks('2014-11-05', '2014-11-29'));
/*結果は
配列(4) {
[0]=>
文字列(13)「11-03~11-09」
[1]=>
文字列(13)「11-10~11-16」
[2]=>
文字列(13)「11-17~11-23」
[3]=>
文字列(13)「11-24~11-30」
}
*/
// 2月1日と11月30日を出力します
var_dump($datefmt->get_months('2014-02-03', '2014-11-29'));
/*結果は
配列(10) {
[0]=>
文字列(13) "02-01 ~ 02-28"
[1]=>
文字列(13) "03-01 ~ 03-31"
[2]=>
文字列(13) "04-01 ~ 04-30"
[3]=>
文字列(13)「05-01~05-31」
[4]=>
文字列(13) "06-01 ~ 06-30"
[5]=>
文字列(13) "07-01 ~ 07-31"
[6]=>
文字列(13) "08-01 ~ 08-31"
[7]=>
文字列(13) "09-01 ~ 09-30"
[8]=>
文字列(13)「10-01~10-31」
[9]=>
文字列(13)「11-01~11-30」
}
*/

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/917042.html技術記事 PHP は、指定された 2 つの日付間の各週と各月の開始時刻と終了時刻を取得します。PHP date は、指定された 2 つの日付に基づいて、2 つの日付間の各週の開始時刻と終了時刻を計算します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles