ホームページ  >  記事  >  ウェブフロントエンド  >  javasctipt_javascriptスキルで分前、数日前などを表示する方法

javasctipt_javascriptスキルで分前、数日前などを表示する方法

WBOY
WBOYオリジナル
2016-05-16 16:50:50980ブラウズ

jsp页面:

复制代码代码如下:



<頭>









これは私の JSP ページです。

${time}









复制代代码如下:

(function (factory) {
if (typeof define === 'function' &&define.amd) {
// AMD. 匿名モジュールとして登録します。
define([ 'jquery'], ファクトリー);
} else {
// ブラウザー グローバル
factory(jQuery)
}
}(function ($) {
$.timeago = function(timestamp) {
if (日付のタイムスタンプインスタンス) {
return inWords(timestamp);
} else if (typeof timestamp === "string") {
return inWords($.timeago) .parse(timestamp));
} else if (typeof timestamp === "number") {
return inWords(new Date(timestamp));
return inWords($ .timeago.datetime(timestamp));
}
};
var $t = $.timeago;

$.extend($.timeago, {
設定: {
refreshMillis: 60000、
allowFuture: false、
localeTitle: false、
cutoff: 0、
strings: {
prefixAgo: null、
prefixFromNow: null、
suffixAgo: "前"、
suffixFromNow: "今から"、
秒: "1分钟"、
分: "1分钟"、
分: "%d分钟"、
時間: "1小時間"、
時間: "%d小時間"、
日: "1天"、
日: "%d天"、
月: "1月"、
月: "%d 月"、
年: "1 年"、
年: "%d 年"、
wordSeparator: ""、
数値: []
}
},
inWords: function( distanceMillis) {
var $l = this.settings.strings;
var prefix = $l.prefixAgo;
var suffix = $l.suffixAgo;
if (this.settings.allowFuture) {
if ( distanceMillis < 0) {
prefix = $l.prefixFromNow;
suffix = $l.suffixFromNow;
}
}

var 秒 = Math.abs( distanceMillis) / 1000;
var minutes = 秒 / 60;
var 時間 = 分 / 60;
var days = 時間 / 24;
var 年 = 日 / 365;

関数 replace(stringOrFunction,number) {
var string = $.isFunction(stringOrFunction) ? stringOrFunction(数値, distanceMillis) : stringOrFunction;
var 値 = ($l.numbers && $l.numbers[number]) ||番号;
return string.replace(/%d/i, value);
}

varwords = 秒
45 && 置換($l.秒、Math.round(秒)) ||
秒 分分時間 時間 日 日 日 年 substitute($l.year, Math.round(years));

var separator = $l.wordSeparator || "";
if ($l.wordSeparator === 未定義) { separator = " ";
return $.trim([接頭辞, 単語, 接尾辞].join(区切り文字));
},
parse: function(iso8601) {
var s = $.trim(iso8601);
s = s.replace(/.d /,""); // ミリ秒を削除
s = s.replace(/-/,"/").replace(/-/,"/");
s = s.replace(/T/," ").replace(/Z/,"UTC");
s = s.replace(/([ -]dd):?(dd)/," $1$2"); // -04:00 -> -0400
新しい日付を返します。
},
datetime: function(elem) {
var iso8601 = $t.isTime(elem) ? $(elem).attr("日付時刻") : $(elem).attr("タイトル");
return $t.parse(iso8601);
},
isTime: function(elem) {
// jQuery の `is()` は IE の HTML5 ではうまく動作しません
return $(elem).get(0).tagName .toLowerCase() === "時間"; // $(elem).is("時間");
}
});

// $(el).timeago('action') 経由で呼び出すことができる関数
// アクションが指定されない場合、init はデフォルトです
// 関数は、コンテキストで呼び出されます単一要素
var function = {
init: function(){
var fresh_el = $.proxy(refresh, this);
refresh_el();
var $s = $t.settings;
if ($s.refreshMillis > 0) {
setInterval(refresh_el, $s.refreshMillis);
}
},
update: function(time){
$(this).data('timeago', { datetime: $t.parse(time) });
refresh.apply(this);
},
updateFromDOM: function(){
$(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr ("日時") : $(this).attr("タイトル") ) });
refresh.apply(this);
}
};

$.fn.timeago = function(action, options) {
var fn = action ?関数[アクション] : 関数.init;
if(!fn){
throw new Error("不明な関数名 '" アクション "' for timeago");
}
// ここでそれぞれのオブジェクトをオーバーライドし、要求された関数を呼び出します
this.each(function(){
fn.call(this, options);
});
これを返します;
};

function reports() {
var data = prepareData(this);
var $s = $t.settings;

if (!isNaN(data.datetime)) {
if ( $s.cutoff == 0 || distance(data.datetime) < $s.cutoff) {
$( this).text(inWords(data.datetime));
}
}
これを返します;
}

function prepareData(element) {
element = $(element);
if (!element.data("timeago")) {
element.data("timeago", { datetime: $t.datetime(element) });
var text = $.trim(element.text());
if ($t.settings.localeTitle) {
element.attr("title", element.data('timeago').datetime.toLocaleString());
} else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
element.attr("title", text);
}
}
return element.data("timeago");
}

function inWords(date) {
return $t.inWords( distance(date));
}

function distance(date) {
return (new Date().getTime() - date.getTime());
}

// IE6 の吸い込みを修正
document.createElement("abbr");
document.createElement("時間");
}));

コントローラー层:
复制代代码如下:

パッケージcom.spring.controller;

インポート java.io.IOException;
インポート java.io.PrintWriter;
インポート java.util.Date;

import javax.servlet.http.HttpServletRequest;
インポート javax.servlet.http.HttpServletResponse;

net.sf.json.JSONArray をインポートします。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
インポート org.springframework.web.servlet.ModelAndView;

com.spring.model.JsonMoel をインポートします。
com.sun.org.apache.bcel.internal.generic.NEW をインポートします。

/**
* @author Qixuan.Chen
* 作成時間: 2014-4-29
*/
@Controller
public class TimeAgoController {


/**
* @param リクエスト
* @param レスポンス
* @return
* @throws IOException
*/
@RequestMapping(value) ="time/show"、メソッド = {RequestMethod.POST,RequestMethod.GET})
public ModelAndView PostJsonTest(HttpServletRequest request,HttpServletResponse response) throws IOException{

ModelAndView mav=new ModelAndView();
mav.addObject("時刻", new Date());
mav.setViewName("time/timeago");
関数を返します;
}

}
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。