이 패키지는 Intl.RelativeTimeFormat 사양에서 벗어났습니다. 따라서이 패키지를 사용하지 않았으며 Spec Compliant PolyFill으로`@formatjs/intl relativeTimeFormat를 추가했습니다.
units (예 : day-short )는 다음과 유사하게 마이그레이션해야합니다. new IntlRelativeFormat ( 'en' , { units : 'second-short' } ) . format (
Date . now ( ) - 1000
) ;
// will be
new Intl . RelativeTimeFormat ( 'en' , { style : 'short' } ) . format ( - 1 , 'second' ) ;
new IntlRelativeFormat ( 'en' , { units : 'day-narrow' } ) . format (
Date . now ( ) - 48 * 3600 * 1000
) ;
// will be
new Intl . RelativeTimeFormat ( 'en' , { style : 'narrow' } ) . format ( - 2 , 'day' ) ;style: numeric numeric: always 됩니다. new IntlRelativeFormat ( 'en' , {
units : 'second-short' ,
style : 'numeric'
} ) . format ( Date . now ( ) - 1000 ) ;
// will be
new Intl . RelativeTimeFormat ( 'en' , { style : 'short' } ) . format ( - 1 , 'second' ) ; new IntlRelativeFormat ( 'en' , { units : 'day-narrow' , style : 'numeric' } ) . format (
Date . now ( ) - 48 * 3600 * 1000
) ;
// will be
new Intl . RelativeTimeFormat ( 'en' , { style : 'narrow' } ) . format ( - 2 , 'day' ) ;style: 'best fit' 은 약간 까다 롭지 만 전환을 완화하기 위해 @formatjs/intl-utils 출시했습니다. new IntlRelativeFormat ( 'en' , { style : 'best fit' } ) . format ( Date . now ( ) - 1000 ) ;
// will be
import { selectUnit } from '@formatjs/intl-utils' ;
const diff = selectUnit ( Date . now ( ) - 1000 ) ;
new Intl . RelativeTimeFormat ( 'en' , { numeric : 'auto' } ) . format (
diff . value ,
diff . unit
) ; new IntlRelativeFormat ( 'en' , { style : 'best fit' } ) . format (
Date . now ( ) - 48 * 3600 * 1000
) ;
// will be
import { selectUnit } from '@formatjs/intl-utils' ;
const diff = selectUnit ( Date . now ( ) - 48 * 3600 * 1000 ) ;
new Intl . RelativeTimeFormat ( 'en' , { numeric : 'auto' } ) . format (
diff . value ,
diff . unit
) ;options.now 사용하는 경우 format 으로 표시되면 formatjs/intl-utils 사용하여 전환 할 수도 있습니다. new IntlRelativeFormat ( 'en' , { style : 'best fit' } ) . format ( Date . now ( ) - 1000 , {
now : Date . now ( ) + 1000
} ) ;
// will be
import { selectUnit } from '@formatjs/intl-utils' ;
const diff = selectUnit ( Date . now ( ) - 1000 , Date . now ( ) + 1000 ) ;
new Intl . RelativeTimeFormat ( 'en' , { numeric : 'auto' } ) . format (
diff . value ,
diff . unit
) ; new IntlRelativeFormat ( 'en' , { style : 'best fit' } ) . format (
Date . now ( ) - 48 * 3600 * 1000 ,
{ now : Date . now ( ) + 1000 }
) ;
// will be
import { selectUnit } from '@formatjs/intl-utils' ;
const diff = selectUnit ( Date . now ( ) - 48 * 3600 * 1000 , Date . now ( ) + 1000 ) ;
new Intl . RelativeTimeFormat ( 'en' , { numeric : 'auto' } ) . format (
diff . value ,
diff . unit
) ;형식 JavaScript 날짜는 상대 시간 문자열 (예 : "3 시간 전").
이 패키지는 상대 시간의 다양한 변형을 형식화 할 수있는 방법을 제공하는 것을 목표로합니다. 이 패키지는 브라우저와 Node.js를 통해 서버에서 사용할 수 있습니다.
이 구현은 Moment.js와 매우 유사하지만 개념적으로 200 개 이상의 언어를 지원하는 산업 표준 인 Unicode CLDR Locale 데이터를 기반으로 형식화 기능 만 제공합니다.
var rf = new IntlRelativeFormat ( locales , [ options ] ) ; locales 단일 언어 태그, 예를 들어 "en-US" 또는 첫 번째 경기가 사용될 배열 일 수 있습니다. options 형식의 상대 시간 문자열의 출력을 제어하는 방법을 제공합니다.
var output = rf . format ( someDate , [ options ] ) ; 이 라이브러리를 사용하는 가장 일반적인 방법은 IntlRelativeFormat 인스턴스를 구성하고 다른 날짜 값을 형식화하기 위해 여러 번 재사용하는 것입니다. 예 : :
var rf = new IntlRelativeFormat ( 'en-US' ) ;
var posts = [
{
id : 1 ,
title : 'Some Blog Post' ,
date : new Date ( 1426271670524 )
} ,
{
id : 2 ,
title : 'Another Blog Post' ,
date : new Date ( 1426278870524 )
}
] ;
posts . forEach ( function ( post ) {
console . log ( rf . format ( post . date ) ) ;
} ) ;
// => "3 hours ago"
// => "1 hour ago" "best fit" ( "어제") 및 "numeric" ( "1 일 전") 출력에 대한 스타일 옵션.
특정 장치에서 항상 렌더링하기위한 장치 옵션; 예 : "1 개월 전"대신 "30 일 전".
상대 시간이 계산되는 "now"값을 지정하는 기능 format() 허용합니다.
`intl.relativeTimeFormat을 사용하여 상대 시간 문자열의 형식 출력
IntlRelativeFormat 인스턴스의 format() 메소드에 대한 반복 호출에 최적화되었습니다.
Intl 종속성 이 패키지는 Intl 의 다음 기능을 가정합니다.
Intl.PluralRulesIntl.RelativeTimeFormat환경을 지원하지 않으면 폴리 플릴을 자유롭게 잡으십시오.
패키지 및 폴리 필기 설치 :
npm install intl-relativeformat --save 간단히 require() 이 패키지 :
var IntlRelativeFormat = require ( 'intl-relativeformat' ) ;
var rf = new IntlRelativeFormat ( 'en' ) ;
var output = rf . format ( dateValue ) ;패키지 설치 :
npm install intl-relativeformat --save 간단히 require() .
var IntlRelativeFormat = require ( 'intl-relativeformat' ) ; 참고 : Node.js에서는 200 개 이상의 모든 언어에 대한 데이터가 라이브러리와 함께로드되지만 Browserify/Webpack으로 번들링 할 때는 의도적으로 무시됩니다 (자세한 내용은 package.json 참조).
IntlRelativeFormat 생성자 상대 시간으로 날짜를 형식화하려면 IntlRelativeFormat 생성자를 사용하십시오. 생성자는 두 가지 매개 변수를 가져옵니다.
로컬 - {문자열 | String []} - BCP 47 언어 태그가있는 문자열 또는 그러한 문자열 배열. 로케일을 제공하지 않으면 기본 로케일이 사용됩니다. 로케일의 배열이 제공되면 각 품목과 조상 로케일이 점검되고 등록 된 로케일 데이터가있는 첫 번째 항목이 반환됩니다. 자세한 내용은 로케일 해상도를 참조하십시오.
[옵션] - {Object} - 형식 스타일에 대한 사용자 정의 옵션이있는 선택적 객체. 자세한 내용은 사용자 정의 옵션을 참조하십시오.
참고 : 사용자 정의 옵션을 사용하지 않는 한 rf 인스턴스는 전체 애플리케이션에 충분해야합니다.
IntlRelativeFormat 내장 Intl API와 유사한 로케일 해상도 프로세스를 사용하여 생성자에게 전달 된 locales 값을 기반으로 사용할 로케일 데이터를 결정합니다. 이 해상도 프로세스의 결과는 resolvedOptions() 프로토 타입 메소드를 호출하여 결정할 수 있습니다.
다음은 Locale 값을 해결하기 위해 IntlRelativeFormat 수행하는 추상 단계입니다.
추가 로케일 데이터가로드되지 않으면 로케일은 항상 "en" 으로 해결됩니다.
"fr-FR" 과 같은 잎 로케일에 대한 로케일 데이터가 없지만 조상 중 하나 인 "fr" 대한 데이터가 있으면 조상이 사용됩니다.
지정된 로케일에 대한 데이터가 있으면 해당 로케일이 해결됩니다. 즉,
var rf = new IntlRelativeFormat ( 'en-US' ) ;
assert ( rf . resolvedOptions ( ) . locale === 'en-US' ) ; // true 해결 된 로케일은 이제 정규화됩니다. 예를 들어, "en-us" "en-US" 로 해결됩니다.
참고 : locales 에 대한 배열이 제공되면 해당 배열의 각 항목에 대해 상기 단계가 일치 할 때까지 발생합니다.
선택적 두 번째 인수 options 상대 시간이 형식화되는 방식을 사용자 정의하는 방법을 제공합니다.
기본적으로 상대 시간은 가장 적합한 단위 units 계산되지만, "second" , "second-short" , "second-narrow" , "minute" , "minute-short" "minute-narrow" "hour" , "hour-short" -", " "hour-narrow" "day" , "day-short" , "day-narrow" , "month" ," ", "month-short" "month-narrow" , "year" , "year-short" 또는 "year-narrow" :
var rf = new IntlRelativeFormat ( 'en' , {
units : 'day'
} ) ;
var output = rf . format ( dateValue ) ;결과적으로, 출력은 "2 개월 전"대신 "70 일 전"가 될 것입니다.
기본적으로 상대 시간은 "1 일 전"대신 "1 일"대신 "어제"또는 "1 년 내"이 "내년"등이 표시되지만 항상 " "best fit" "대안을 사용할 수 있음을 의미합니다.
var rf = new IntlRelativeFormat ( 'en' , {
style : 'numeric'
} ) ;
var output = rf . format ( dateValue ) ;결과적으로, 출력은 "어제"대신 "1 일 전"가됩니다.
resolvedOptions() 메소드 이 메소드는 인스턴스 생성 중에 해결 된 옵션 값으로 객체를 반환합니다. 현재 locale 속성 만 포함합니다. 예는 다음과 같습니다.
var rf = new IntlRelativeFormat ( 'en-us' ) ;
console . log ( rf . resolvedOptions ( ) . locale ) ; // => "en-US" 지정된 로케일이 어떻게 모든 소문자 값 인 "en-us" 인지 확인하십시오. 그러나 "en-US" 로 해결되고 정규화되었습니다.
format(date, [options]) 메소드 형식 메소드 ( JavaScript 날짜 또는 타임 스탬프를 취하는 ) 및 선택적 options 인수는 date 를 "now"(또는 options.now . 예를 들어, 해당 지역의 "3 시간 전"은 생성자로 전달되었습니다.
var output = rf . format ( new Date ( ) ) ;
console . log ( output ) ; // => "now" "지금"값을 지정하려면 options.now 통해 제공 할 수 있으며 Date.now() 쿼리하는 대신 사용됩니다.
이 소프트웨어는 Yahoo!에서 무료로 사용할 수 있습니다. BSD 라이센스. 라이센스 텍스트 및 저작권 정보는 라이센스 파일을 참조하십시오.