2012年3月19日 星期一

XOOPS的時間函數運用

參考連結:http://www.mysuc.com/test/My97DatePicker/
  1.  post_date由於沒有出現在顯示畫面,所以存入資料庫用
    「strtotime("now")」
    當要做比較時,由於「 start_date 」、「 end_date 」存入資料庫已轉換為「主機時間」
    故語法為:
    $checkday=date("Y-m-d H:i:s" , strtotime("now")); //這個是主機時間
    $sql = "select * from ".$xoopsDB->prefix("資料表")." where enable='1' and start_date < '{$checkday}'  and end_date > '{$checkday}'";
  2. 存入資料庫:
    $start_date=date("Y-m-d H:i:00",userTimeToServerTime(strtotime($_POST['start_date'])));
    $end_date=date("Y-m-d H:i:00",userTimeToServerTime(strtotime($_POST['end_date'])));
    資料庫型態為「 datetime 」
      # 處理時間(日期->時間戳記)
      $_POST['start_date']=userTimeToServerTime(strtotime($_POST['start_date']));
      $_POST['end_date']=userTimeToServerTime(strtotime($_POST['end_date']));
  3. 從資料庫撈出:
    $start_date=(!isset($DBV['start_date']))?date("Y-m-d H:i:00"):$DBV['start_date'];
    $end_date=(!isset($DBV['end_date']))?date("Y-m-d H:i:00",strtotime("+7 days")):$DBV['end_date'];
    $start_date=date("Y-m-d H:i:00",xoops_getUserTimestamp(strtotime($start_date)));
    $end_date=date("Y-m-d H:i:00",xoops_getUserTimestamp(strtotime($end_date)));
    # -------- 處理時間(時間戳記->日期格式) -------------------------------------
    $start_date=date("Y-m-d",xoops_getUserTimestamp($start_date));
    $end_date=date("Y-m-d",xoops_getUserTimestamp($end_date));
    # ---------------------------------------------------------------------------

  4. 運用:
    資料庫型態為「 datetime 」
    $today=xoops_getUserTimestamp(time()); //轉成時間戳記

    $start_date=xoops_getUserTimestamp(strtotime($start_date));//轉成時間戳記

    $end_date=xoops_getUserTimestamp(strtotime($end_date)); //轉成時間戳記

    $title=($start_date< $today and $end_date >$today)?"{$title}":$title;//比較時間
  5.  預設值:
    $start_date=(!isset($DBV['start_date']))?date("Y-m-d H:i:00",xoops_getUserTimestamp(strtotime("now"))):$DBV['start_date'];

    $end_date=(!isset($DBV['end_date']))?date("Y-m-d H:i:00",xoops_getUserTimestamp(strtotime("+7 days"))):$DBV['end_date'];
  6.  參考連結: http://php.net/manual/en/function.strtotime.php

    =====================================================
  7. 目前時間:
    $date_now=date("Y-m-d H:i:s" , xoops_getUserTimestamp(strtotime("now")));

    $date=(!isset($DBV['date']))?
    $date=date("Y-m-d H:i:s" , xoops_getUserTimestamp(strtotime("now"))):
    $date=date("Y-m-d H:i:s" , xoops_getUserTimestamp($DBV['date']));
  8. 轉成XOOPS使用者時間
    $default_val 為  「 datetime 」 格式
    date("Y-m-d H:i:s" , xoops_getUserTimestamp(strtotime($default_val)))
    --------------------------------------------------------------------------
    date("Y-m-d H:i:s" , xoops_getUserTimestamp(strtotime("now"))); //這個是主機時間
  9. 資料庫為 int(10)
    #-----------------------------初始值--------------------------------------------------------------
    $main_date=(!isset($DBV['main_date']))?date("Y-m-d H:i:00",xoops_getUserTimestamp(time())):date("Y-m-d H:i:s",xoops_getUserTimestamp($DBV['main_date'])); #公告日期
    #-----------------------------寫入資料庫--------------------------------------------------------------
    $_POST['main_date']=userTimeToServerTime(strtotime($_POST['main_date']));    # 公告日期 $date=getdate($_POST['main_date']);
     $year=$date['year']; 取得年
     $mon=$date['mon']; 取得月

    參考:http://tw1.php.net/manual/en/function.getdate.php

    # -------------   日期列表  -----------------------------
    $main_date=(!empty($main_date))?date("Y-m-d H:i:s",xoops_getUserTimestamp($main_date)):""; #公告日期
     
  10. # -------------   取得年、月、日函數  -----------------------------
    $date=getdate(時間戳記);
    $year=$date['year']; #取得年
    $mon=$date['mon'];  #取得月
  11. 取得上個月的第一天及最後一天
    $time = strtotime('last month'); echo date('Y-m-t', $time); //个月的最后一天    echo date('Y-m-01', $time); //上个月的第一天
  12. 取得本月的第一天及最後一天
    $time=strtotime('now');   echo date('Y-m-01',$time).'----'.date('Y-m-t',$time);




沒有留言: