チップス

mysqlのdatetime型 など


/**
* mysqlのdatetime型のフィールドの値が
* 1970年 01月 01日 なら null
* それ以外は 文字列 yyyy-mm-dd
*/

function check_datetime_yyyymmdd($datetime)
{
    $year = substr($datetime, 0, 4);
    $month = substr($datetime, 5, 2);
    $day = substr($datetime, 8, 2);
    $hour = substr($datetime, 11, 2);
    $minute = substr($datetime, 14, 2);
    $second = substr($datetime, 17, 2);

    if ($year == "1970" && $month == "01" && $day == "01") {
        $time = null;
    } else {
        $time = sprintf("%4d年%02d月%02d日", $year, $month, $day);
    }
    return $time;
}

 
// $yesterday = date("Ymd", getDay(-1));
// $tomorrow = date("Ymd", getDay(1) );
// 現在の時刻から 指定した日付の取得
// 日付に 86400(1日) * ?日 で計算すればよい。

function getDay($day) 
{
    return mktime(date("H"), date("i"), date("s"), date("m"), date("d") + $day, date("Y"));

}

指定した年月日から曜日を得る
今日の年月日
 $yr = date('Y',time()); // 西暦年…'Y'指定で2001などと表示
 $mt = date('m',time()); // 月…'m'指定で02などと表示
 $dy = date('j',time()); // 日…'j'指定で25などと表示
インスタンスの生成(コンストラクタの呼出し)
 $get = new GetWeek($yr,$mt,$dy); // 現在年月
 echo $get -> week_get(); //(関数を引数無しで呼び出す)
プロパティの呼出し
  print("year = ".$get -> year."
\n");
  print("month = ".$get -> month."
\n");
  print("day = ".$get -> day."
\n");

class GetWeek {
    // フィールド
    var $year;
    var $month;
    var $day;
    // コンストラクタ
    function GetWeek($y, $m, $d)
    {
        $this -> year = $y;
        $this -> month = $m;
        $this -> day = $d;
    }
    // 関数
    function week_get()
    {
        if ($this -> month <= 2) {
            $this -> year-1;
            $this -> month += 12;
        }
        // ツェラーの公式
        $week_num = (($this -> year + floor($this -> year / 4) - floor($this -> year / 100) + floor($this -> year / 400) + floor((13 * $this -> month + 8) / 5) + $this -> day) % 7);
        $week_logo = array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT');
        return $week_logo[$week_num];
    }
}

   チップス