PHP Wordpress

指定年月のX週目のY曜日が何日か、また、指定年月日が何週目の何曜日かを取得するPHPスクリプト

指定年月の第X週目のY曜日が何日か、また、指定年月日が第X週目のY曜日かを取得するPHPスクリプトをまとめした。
以下のページを参考にしました。
曜日を表示する:PHP

指定年月のX番目のY曜日が何日かを取得する

function get_numberx_weekday($y, $m, $n, $w) {
    date_default_timezone_set('Asia/Tokyo');

    // 指定曜日の最初の日付を取得して指定週の日付を算出
    $first_weekday = date("w", mktime(0, 0, 0, $m, 1, $y));
    $result_day = $w - $first_weekday + 1;
    if ($result_day < 1) {
    	$result_day += 7;
    }
    $result_day = $result_day + ($n - 1) * 7;
    if ($result_day > 31) {
    	return 0;
    }
    return $result_day;
}

引数は

  • $y:年
  • $m:月
  • $n:何週目か
  • $n:曜日(日:0 月:1 火:2 水:3 木:4 金:5 土:6)

となっています。

WordPressのショートコードとして使用する場合

WordPressのショートコードとして使用する場合は、以下ようにします。

function get_numberx_weekday() {
    extract(shortcode_atts(array(
        'y' => 2017,
        'm' => 2,
        'n' => 3,
        'w' => 6,
    ), $atts));
	date_default_timezone_set('Asia/Tokyo');

    // 指定曜日の最初の日付を取得して指定週の日付を算出
    $first_weekday = date("w", mktime(0, 0, 0, $m, 1, $y));
    $result_day = $w - $first_weekday + 1;
    if ($result_day < 1) {
    	$result_day += 7;
    }
    $result_day = $result_day + ($n - 1) * 7;
    if ($result_day > 31) {
    	return 0;
    }
    return $result_day;
}
add_shortcode('get_numberx_weekday', 'get_numberx_weekday');

以下のようなコードを記事に書き込んで使用します。

[get_numberx_weekday y=2017, m=2, n=3, w=6]

指定年月日が何番目の何曜日かを取得する

function get_numberx_and_weekday($y, $m, $d) {
    $weekjp = array('日', '月', '火', '水', '木', '金', '土');
	date_default_timezone_set('Asia/Tokyo');
    $date = new DateTime();
    $date->setDate($y,$m,$d)->setTime(10,10,10);
    $w = date("w", mktime(0, 0, 0, $m, $d, $y));
    // 指定曜日の最初の日付を取得して指定週の日付を算出
    $n = ceil($d/7);
    return "第" . $n . $weekjp[$w] . "曜日";
}

引数は

  • $y:年
  • $m:月
  • $d:日

となっています。

戻り値を複数の値で返す場合は、以下のようにします。

    return array($y, $m, $d);

実行する側のコード

list($num, $week) = get_numberx_and_weekday(2017, 2, 17);

WordPressのショートコードとして使用する場合

WordPressのショートコードとして使用する場合は、以下ようにします。

function get_numberx_and_weekday() {
    extract(shortcode_atts(array(
        'y' => 2017,
        'm' => 2,
        'd' => 3,
    ), $atts));
    $weekjp = array('日', '月', '火', '水', '木', '金', '土');
	date_default_timezone_set('Asia/Tokyo');
    $date = new DateTime();
    $date->setDate($y,$m,$d)->setTime(10,10,10);
    $w = date("w", mktime(0, 0, 0, $m, $d, $y));
    // 指定曜日の最初の日付を取得して指定週の日付を算出
    $n = ceil($d/7);
    return "第" . $n . $weekjp[$w] . "曜日";
}
add_shortcode('get_numberx_and_weekday', 'get_numberx_and_weekday');

以下のようなコードを記事に書き込んで使用します。

[get_numberx_and_weekday y=2017, m=2, d=4]
 

-PHP, Wordpress

Copyright© アフィリエイト&ウェブ制作のtips , 2019 All Rights Reserved.