트위터나 페이스북을 보면 날짜 시간이 아니라
1분 전, 1시간 전 이런 표시가 되어 있는데
소스 구현해봤습니다.
UTF-8, PHP 최신버전에서 활용하세요~
파일도 첨부합니다.
[code]
<?php
include './TextDate.php';
$now = new DateTime;
$textData = new TextDate();
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
echo $textData->print_(new DateTime("now")), "<br>\n";
echo $textData->print_(new DateTime("-1 day")), "<br>\n";
echo $textData->print_(new DateTime("-1 week")), "<br>\n";
echo $textData->print_(new DateTime("-1 week -20 days")), "<br>\n";
?>
</body>
</html>
[/code]
[code]
<?php
/**
* 날짜 문자
*
* 1분 전, 1시간 전, 1일 전 표시
*
* @author onhae
* @copyright onhae
* @license GPL
* @link http://www.onhae.com
* @since Version 1.0
*/
class TextDate {
/**
* 현재 날짜
* @var DateTime
*/
protected $now = null;
/**
* 비교 날짜
* @var DateTime
*/
protected $datetime = null;
/**
* 이전 표시 문자
* @var string
*/
protected $agoText = '약 %s 전';
/**
* 현재 표시 문자
* @var string
*/
protected $nowText = '현재';
/**
* 기본 형식
* @var string
*/
protected $defaultFormat = 'Y-m-d H:i:s';
/**
* 형식 배열 array('y' => '년', 'm' => '월', 'd' => '일', 'h' => '시간', 'i' => '분', 's' => '초')
* @var array
*/
protected $formatArray = array('y' => '년', 'm' => '개월', 'd' => '일', 'h' => '시간', 'i' => '분', 's' => '초');
/**
* 생성자
* @param DateTime $now 현재 날짜
* @param DateTime $datetime 비교 날짜
*/
public function __construct(DateTime $now = null, DateTime $datetime = null) {
if ($now === null) {
$this->now = new DateTime;
}
if ($datetime === null) {
$this->datetime = new DateTime;
}
}
/**
* 현재 날짜 설정
* @param DateTime $now
*/
function setNow(DateTime $now) {
$this->now = $now;
}
/**
* 비교 날짜 설정
* @param DateTime $datetime
*/
function setDatetime(DateTime $datetime) {
$this->datetime = $datetime;
}
/**
* 이전 표시 문자 설정
* @param string $agoText
*/
function setAgoText($agoText) {
$this->agoText = $agoText;
}
/**
* 현재 표시 문자
* @param string $nowText
*/
function setNowText($nowText) {
$this->nowText = $nowText;
}
/**
* 기본 형식 설정
* @param string $defaultFormat
*/
function setDefaultFormat($defaultFormat) {
$this->defaultFormat = $defaultFormat;
}
/**
* 형식 배열 설정 array('y' => '년', 'm' => '월', 'd' => '일', 'h' => '시간', 'i' => '분', 's' => '초')
* @param array $formatArray
*/
function setFormatArray(array $formatArray) {
$this->formatArray = $formatArray;
}
/**
* 출력
* @param DateTime $datetime 비교 할 날짜
* @return type
*/
public function print_(DateTime $datetime = null) {
if ($datetime === null) {
$datetime = $this->datetime;
}
/* @var $diff DateInterval */
$diff = $this->now->diff($datetime);
foreach ($this->formatArray as $key => $text) {
if ($diff->{$key} === 0) {
continue;
}
$result = $diff->{$key} . $text;
if ($diff->invert === 1) {
$result = sprintf($this->agoText, $result);
}
break;
}
if (isset($result) === false && $datetime->getTimestamp() === $this->now->getTimestamp()) {
$result = $this->nowText;
} elseif (isset($result) === false) {
$result = $datetime->format($this->defaultFormat);
}
return $result;
}
}
[/code]
소스가 잘 안 보이는 거 같아요...
첨부파일 다운받으세요..
게시글 목록
| 번호 | 제목 |
|---|---|
| 12307 |
JavaScript
테이블 각 row 마우스오버시 색깔바꾸기 입니다.
|
| 12306 |
JavaScript
png 24비트 투명처리하기 입니다.
|
| 12305 |
JavaScript
full-down메뉴 자바스크립트 입니다.
|
| 12304 |
JavaScript
iframe사용시 높이 자동 조정하기 입니다.
|
| 12303 |
JavaScript
계산기
|
| 12302 |
JavaScript
숫자를 한글로 변환하기 입니다.
|
| 12301 |
JavaScript
아이프레임 자동으로 늘어나는 자바 스크립트 입니다.
|
| 12300 |
JavaScript
끊기지 않는 배너 롤링 입니다.
|
| 12299 |
기타
랜섬에 당한 화일 복구
|
| 12298 |
JavaScript
id값 변수명으로 치환 예제 자바스크립트 입니다.
|
| 12297 |
JavaScript
상태바의 링크 주소 감추기 입니다.
|
| 12296 |
JavaScript
가짜 카운터 달기 입니다.
|
| 12295 |
JavaScript
홈에 머문시간을 제목표시줄과 상태바에 실시간으로 알려주기 입니다.
|
| 12294 |
JavaScript
prompt 와 alert 응용 자바스크립트 예제 입니다.
|
| 12293 |
JavaScript
prompt 와 alert 간단한 자바스크립트 예제 입니다.
|
| 12292 |
jQuery
간단한 탭 제이쿼리
|
| 12291 |
jQuery
간단한 셀렉트 드롭다운 제이쿼리
|
| 12290 |
JavaScript
문서내 이미지갯수 출력하기 입니다.
|
| 12289 |
JavaScript
내용 복사해서 붙어넣기 하면 출처 따라오는 자바스크립트입니다.
|
| 12288 |
JavaScript
팝업창 지정한 시간대에 예약 열기 입니다.
|
| 12287 |
JavaScript
접속때마다 음악 다르게 나오기 입니다.
|
| 12286 |
JavaScript
자동 스크롤 메뉴 관련 입니다.
|
| 12285 |
JavaScript
이 브라우저로 몇페이지나 보았나 확인하기 입니다.
|
| 12284 |
JavaScript
사용자 브라우저의 펄러그인 목록 출력하기 입니다.
|
| 12283 |
JavaScript
상태표시줄 제어 + 간단한 복사 제어 하기 입니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기