>웹 프론트엔드 >JS 튜토리얼 >javasctipt_javascript 스킬에서 몇 분 전, 며칠 전 등을 표시하는 방법

javasctipt_javascript 스킬에서 몇 분 전, 며칠 전 등을 표시하는 방법

WBOY
WBOY원래의
2016-05-16 16:50:501032검색

jsp页면:

复system代码 代码如下:



<머리>








<본문>
제 JSP 페이지입니다.

${time}









复代码 代码如下:

(function (factory) {
if (typeof 정의 === 'function' && 정의.amd) {
// AMD. 익명 모듈로 등록합니다.
define([ 'jquery'], 공장);
} else {
// 브라우저 전역
factory(jQuery)
}
}(함수 ($) {
$.timeago = function(timestamp) {
if (timestamp 인스턴스of Date) {
return inWords(timestamp);
} else if (typeof timestamp === "string") {
return inWords($.timeago .parse(timestamp));
} else if (타임스탬프 유형 === "숫자") {
return inWords(new Date(timestamp))
} else {
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 접두사 = $l.prefixAgo;
var 접미사 = $l.suffixAgo;
if (this.settings.allowFuture) {
if (distanceMillis < 0) {
prefix = $l.prefixFromNow;
접미사 = $l.suffixFromNow;
}
}

var 초 = Math.abs(distanceMillis) / 1000;
var 분 = 초 / 60;
var 시간 = 분 / 60;
var 일 = 시간 / 24;
var 연도 = 일수 / 365;

함수 대체(stringOrFunction, number) {
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
var value = ($l.numbers && $l.numbers[number]) || 숫자;
return string.replace(/%d/i, value);
}

var 단어 = 초 < 45 && 대체($l.초, Math.round(초)) ||
초 < 90 && 대체($1.분, 1) ||
분 < 45 && 대입($l.분, Math.round(분)) ||
분 < 90 && 대체($1.시간, 1) ||
시간 < 24 && 대입($l.시간, Math.round(시간)) ||
시간 < 42 && 대체($l.day, 1) ||
일 < 30 && 대입($l.days, Math.round(days)) ||
일 < 45 && 대체($1.월, 1) ||
일 < 365 && 대체($l.개월, Math.round(일 / 30)) ||
년 < 1.5 && 대체($1.년, 1) ||
substitute($l.years, Math.round(years));

var 구분 기호 = $l.wordSeparator || "";
if ($l.wordSeparator === 정의되지 않음) { 구분 기호 = " "; }
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("datetime") : $(elem).attr("title");
$t.parse(iso8601)를 반환합니다.
},
isTime: function(elem) {
// jQuery의 `is()`는 IE의 HTML5에서 제대로 작동하지 않습니다.
return $(elem).get(0).tagName .toLowerCase() === "시간"; // $(elem).is("시간");
}
});

// $(el).timeago('action')을 통해 호출할 수 있는 함수
// 작업이 지정되지 않은 경우 init가 기본값입니다.
// 함수는 a의 컨텍스트로 호출됩니다. 단일 요소
var function = {
init: function(){
var Refresh_el = $.proxy(refresh, this);
refresh_el();
var $s = $t.settings;
if ($s.refreshMillis > 0) {
setInterval(refresh_el, $s.refreshMillis);
}
},
업데이트: function(time){
$(this).data('timeago', { datetime: $t.parse(time) });
새로고침.적용(this);
},
updateFromDOM: function(){
$(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr ("날짜시간") : $(this).attr("제목") ) });
새로고침.적용(this);
}
};

$.fn.timeago = function(액션, 옵션) {
var fn = 액션 ? 함수[동작] : 함수.init;
if(!fn){
throw new Error("알 수 없는 함수 이름 '" 작업 "' for timeago");
}
// 여기에 있는 객체에 대해 각각 요청한 함수를 호출합니다
this.each(function(){
fn.call(this, options);
});
이것을 돌려주세요;
};

functionrefresh() {
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 가져오기;

javax.servlet.http.HttpServletRequest 가져오기;
javax.servlet.http.HttpServletResponse 가져오기;

net.sf.json.JSONArray 가져오기;

org.springframework.stereotype.Controller 가져오기;
org.springframework.web.bind.annotation.RequestMapping 가져오기;
org.springframework.web.bind.annotation.RequestMethod 가져오기;
org.springframework.web.servlet.ModelAndView 가져오기;

import 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 요청,HttpServletResponse 응답)에서 IOException이 발생합니다{

ModelAndView mav=new ModelAndView();
mav.addObject("time", new Date());
mav.setViewName("시간/시간 전");
MAV 반환;
}

}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.