ホームページ >バックエンド開発 >PHPチュートリアル >gamma関数phpの日付処理関数とuchomeのfunction_coomonの日付処理関数の研究
コードをコピーします コードは次のとおりです:
echo mktime(11,25,0,9,5,2010);//time
echoと同じmicrotime() ;
echo mktime(0,0,0,1,1,1970);
コードをコピーします コードは次のとおりです:
echo date ("H i l d F" ,1283657100);
echo gmdate ("H i l d F" ,1283657100) ;
e cho strftime ("%Hh%M %A %d %b" ,1283657100);
//strftime() の動作方法は、先頭にパーセント記号 % を追加する必要があることを除いて、date() と変わりません。特殊な書式設定文字の。
echo strtotime("2010-9-5 11:25:00");
var_dump(getdate (time()));
ここでの出力は 11 25 9 月 5 日日曜日、03 25 日曜日9 月、11 時 25 分、9 月 5 日日曜日、1283657100、array(11) {
$timestamp = $_SGLOBAL['timestamp']; } $timeoffset = strlen($_SGLOBAL['member']['timeoffset'])>0?intval($_SGLOBAL) ['メンバー ']['タイムオフセット']):intval($_SCONFIG['タイムオフセット']); $result = '' if($format) {
$time = $_SGLOBAL['タイムスタンプ'] - $タイムスタンプ; if($time > 24*3600) {
$result = gmdate($dateformat, $timestamp + $timeoffset * 3600);
} elseif ($time > 3600) {
$result = intval($時間/3600 ).lang('時間').lang('前');
} elseif ($time > 60) {
$result = intval($time/60).lang('分').lang ('前'); elseif ($time > 0) {
$result = $time.lang('秒').lang('前'); ');
}
} else {
$result = gmdate($dateformat, $timestamp + $timeoffset * 3600);
}
return $result
if($format; ){}, まず、システムの現在時刻と渡した時刻 (通常はデータベース内の時刻、2010-9-4 21:00:00 など) との差を見つけます。時差が 1 日以内の場合は、2 時間前など、結論が直接導き出されます。1 日を超える場合は、gmdate が呼び出されます。ここだけはわかりません。なぜ date($timestamp) を直接呼び出すのではなく、この奇妙な関数を呼び出すのでしょうか?これは一体どういう意味でしょうか?
gmdate
フィンランド (GMT +0200) で実行すると、以下の最初の行は「Jan 01 1998 00:00:00」を出力し、2 番目の行は「Dec 31 1997 22:00:00」を出力します。
コードをコピーします。
コードは次のとおりです:
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998)); M d Y H :i:s", mktime(0, 0, 0, 1, 1, 1998));
?>
コードをコピーします コードは次のとおりです:
//String time
function sstrtotime($string) {
global $_SGLOBAL, $_SCONFIG;時間 = '';
if($string) {
$time = strtotime($string);
return $time;
以上、ガンマ関数 php の日付処理関数と uchome の function_coomon の日付処理関数についての研究を紹介しました。ガンマ関数の内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。
この機能は非常に少ない機能ですが、私にとっては非常に見にくいです。これは、時刻文字列をタイムスタンプに変換するためです。たとえば、ここで入力したのは 2010 9 4 21:08 です。$time の値は、この時刻から 1970 年 1 月 1 日 00:00:00 GMT までの時差です。考慮すべき時差は次のとおりです。 $_SGLOBAL[''timestamp] の値は、実際には $time と同じ方法で計算されますが、値が若干異なる場合があります。 $_SCONFIG['timeoffset'] は構成テーブル内にあり、その現在の値は 8 です。システムのタイムゾーンが正しいか間違っている場合があり、$_SCONFIG['timeoffset'] を通じて確認する必要があります。 gmdate は、受信したタイムスタンプ (プログラムが実行されている場所のタイムスタンプ) をシステムのタイムゾーンに渡して、その時点のグリニッジの時刻を取得します。システムのタイムゾーンが正しく設定されている場合、これはちょうどプラス 1 とマイナス 1 であり、次の値と等しくなります (実際、ここでの $_SGLOBAL[''timestamp] の値は無関係です)。正常であれば $time を変更する必要はありません。異常であれば $time を減らす必要があります。しかし、もう一度言いますが、これは一体何を意味するのでしょうか?