時間をどのくらい前の形式で表現するか、PHP、js デュアルバージョン_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:16:37
オリジナル
1067 人が閲覧しました

早速、コードに進みましょう。
PHP FOR Smarty

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

* 名前: time_ago
* 目的: 現在時刻の表現としてタイムスタンプを設定します
* 1 分以内の秒数
* 1 以内時 分表示
* 1日以内の時分単位で表示
* 3日以内の昨日、一昨日までの表示
* 3日以上経過した特定の日付を表示
*
* @author Peter Pan
* @param int $時間入力 int
*/
functionsmarty_modifier_time_ago( $time) {
$time_deff = time() - $time;
$retrun = '';
if ($time_deff >= 259200) {
$retrun = date(' Y-m-d H:i', $time);
} else if ($time_deff >= 172800) {
$retrun = "一昨日" . date('H:i', $time); ($time_deff >= 86400) {
$retrun = "昨日" . date('H:i', $time);
} else if ($time_deff >= 3600) {
$hour = intval($time_deff) / 3600);
$分 = intval(($time_deff % 3600) / 60);
$retrun = $hour . '時間';
if ($分 > .= $分 '分';
}
$retrun .= '前' ; else if ($time_deff >= 60) {
$分 = intval($time_deff / 60); retrun = $分 . '分';
if ($秒 > 0) {
$retrun .= '秒';
$retrun .= '前'; $time_deff.'秒前';
}
return $retrun;
}


JavaScript
JS は 3 つの関数に分かれて実装されています



コードをコピーします。

/**
* 文字列充填
* @param string str 充填する文字列
* @param int len 対象の文字列長* @param str chr 充填に使用する文字のデフォルトはスペースです* @param str dir 充填位置左 |右 |両方のデフォルトは右 */ function strPad(str, len, chr, dir){
str = str.toString();
len = (typeof len == 'number') ?
chr = (typeof chr == 'string') ? chr : ' ';
dir = (/left|right|both/i).test(dir) ?
varrepeat = function(c) , l) {
varrepeat = '';
while (repeat.length < l) {
repeat += c;
}
returnrepeat.substr(0, l)
}
var diff = len - str .length;
if (diff > 0) {
switch (dir) {
case 'left':
str = '' +repeat(chr, diff) + str;
case 'both':
var半分 = 繰り返し (chr, Math.ceil(diff / 2));
str = (半分 + str + 半分).substr(1, len);
デフォルト:
str = '' + str +repeat( chr, diff);
}
}
return
}
/**
* 日付の形式
* php Date 関数と同様に、Unix タイムスタンプ (第 2 レベル) を渡し、指定された形式を返します
* 形式 (大文字と小文字は区別されません):
* y は 4 桁の年を表します
* m は年を表します2桁の月
* dは2桁の日を表します
* hは2桁の時を表します
* iは2桁の分を表します
* sは2桁の秒を表します
*/
function formatDate(format,timestamp) {
var date = new Date(parseInt(timestamp) * 1000);年 = date.getFullyear();
var 月 = date.getDate();
var 時間 = date.getMinutes();秒 = 日付.getSeconds();
月 = strPad(月,2,'0','左');
日 = strPad(日,'0','左'); ,2,'0','left');
分 = strPad(分, 2,'0','left');
秒 = strPad(秒,2,'0','左'); = format.replace(/y/gi,year);
format = format.replace (/m/gi,month);
format = format.replace( /h/gi,hour);
format = format.replace(/s/gi,秒);
関数 timeAgo(time); {
var nowTime = Date.parse(new Date()) / 1000;
var time_deff = nowTime - time;
if (time_deff >= 259200) {
retrun = formatDate('Y-m-d H: i', time);
} else if (time_deff >= 172800) {
retrun = "一昨日" + formatDate('H:i', time); else if (time_deff >= 86400) {
retrun = "昨日" + formatDate('H:i', time);
} else if (time_deff >= 3600) {
hour = parseInt(time_deff / 3600);
minutes = parseInt((time_deff % 3600) ) / 60);
retrun = 時間 + '時間';
if (分 > 0) {
retrun += '前'; ;= 60) {
分 = parseInt($time_deff / 60);
秒 = 分 + '分'
if (秒 > 0) {
retrun += 秒 + '秒'; ;
}
retrun += '前';
retrun = time_deff +'秒前'
}
return
;

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/325930.html技術記事早速、コードに進みましょう。 PHP FOR Smarty コードをコピーする コードは次のとおりです: * 名前: time_ago * 目的: 現在時刻の表現としてタイムスタンプを設定します * 1 分以内 (秒) * 1 時間以内...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート