내일, 오늘, 어제 MomentJS와 함께.
으로.moment().fromNow()
기능성이지만 날짜가 가까우면 너무 정확합니다 - ex.'3시간 후'가 아니라 '오늘'을 보여주고 싶습니다. 그래서 기본적으로 '매일' 정확도를 가지고 있습니다.
는 .moment().calendar()
function 않습니다,다 1가.
오늘과 내일 그리고 어제의 날짜를 얻기 위해 이것을 할 수도 있습니다.
let today = moment();
let tomorrow = moment().add(1,'days');
let yesterday = moment().add(-1, 'days');
는 합니다를 해서 사용합니다.add()
그리고.endOf()
//...
const today = moment().endOf('day')
const tomorrow = moment().add(1, 'day').endOf('day')
if (date < today) return 'today'
if (date < tomorrow) return 'tomorrow'
return 'later'
//...
[EDIT 2022-01-04] moment와 API가 동일하고 가벼운 now dayjs를 사용하는 것을 추천합니다 ;)
할 수 ..fromNow
고..calendar
:g 사용moment.updateLocale
는 입니다의 ..calendar
됩니다에 따라
moment.updateLocale('en', {
calendar : {
lastDay : '[Yesterday]',
sameDay : '[Today]',
nextDay : '[Tomorrow]',
lastWeek : '[Last] dddd',
nextWeek : '[Next] dddd',
sameElse : 'L'
}
});
인 것 ..calendar
더입니다 --입니다 --.fromNow
는 과거/현재 접두사/suffix를 사용하고 싶지만 자세한 내용을 알고 싶다면 http://momentjs.com/docs/ #/customization/relative-time/에서 설명서를 읽을 수 있습니다.
한 합니다를 때 첫 합니다.moment.updateLocale
그런 다음 해당 로케일을 사용하여 캘린더 메서드를 호출합니다(예:moment.updateLocale('yesterday-today').calendar( /* moment() or whatever */ )
)
편집: ^2.12.0의 순간은 이제updateLocale
방법.updateLocale
그리고.locale
한 것으로 다.locale
아직 더 이상 사용하지 않지만 최신 메서드를 사용하도록 답변을 업데이트했습니다.
요구사항:
- 합니다를
moment().fromNow()
기능성. "today"
,"yesterday"
,"tomorrow"
.
해결책:
// call this function, passing-in your date
function dateToFromNowDaily( myDate ) {
// get from-now for this date
var fromNow = moment( myDate ).fromNow();
// ensure the date is displayed with today and yesterday
return moment( myDate ).calendar( null, {
// when the date is closer, specify custom values
lastWeek: '[Last] dddd',
lastDay: '[Yesterday]',
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
// when the date is further away, use from-now functionality
sameElse: function () {
return "[" + fromNow + "]";
}
});
}
NB: 버전 2.14.0부터 캘린더 기능에 대한 formats 인수는 콜백이 될 수 있습니다(http://momentjs.com/docs/ .#/displaying/ calendar-time/ 참조).
다음을 사용할 수 있습니다.
const today = moment();
const tomorrow = moment().add(1, 'days');
const yesterday = moment().subtract(1, 'days');
다음은 모멘트를 사용하여 수행하는 방법입니다.
let today = moment().format('DD MMMM YYYY');
let tomorrow = moment().add(1, 'days').format('DD MMMM YYYY').toString();
let yesterday = moment().subtract(1, 'days').startOf('day').format('DD MMMM YYYY').toString();
비슷한 솔루션이 있지만 로케일을 사용할 수 있습니다.
let date = moment(someDate);
if (moment().diff(date, 'days') >= 2) {
return date.fromNow(); // '2 days ago' etc.
}
return date.calendar().split(' ')[0]; // 'Yesterday', 'Today', 'Tomorrow'
From 2.10.5 Moment는 호출당 일정관리 출력 형식 지정을 지원합니다. 자세한 설명서는 Moment - Calendar를 확인하십시오.
**Moment 2.10.5**
moment().calendar(null, {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: '[Yesterday]',
lastWeek: '[Last] dddd',
sameElse: 'DD/MM/YYYY'
});
2.14.0 달력부터는 값을 반환하기 위해 콜백을 받을 수도 있습니다.
**Moment 2.14.0**
moment().calendar(null, {
sameDay: function (now) {
if (this.isBefore(now)) {
return '[Will Happen Today]';
} else {
return '[Happened Today]';
}
/* ... */
}
});
Moment.js에서 from() 메서드의 일별 정밀도는 다음과 같습니다.
var today = new Date();
var tomorrow = new Date();
var yesterday = new Date();
tomorrow.setDate(today.getDate()+1);
yesterday.setDate(today.getDate()-1);
moment(today).from(moment(yesterday)); // "in a day"
moment(today).from(moment(tomorrow)); // "a day ago"
moment(yesterday).from(moment(tomorrow)); // "2 days ago"
moment(tomorrow).from(moment(yesterday)); // "in 2 days"
그래서 이렇게 하게 됐습니다.
var dateText = moment(someDate).from(new Date());
var startOfToday = moment().startOf('day');
var startOfDate = moment(someDate).startOf('day');
var daysDiff = startOfDate.diff(startOfToday, 'days');
var days = {
'0': 'today',
'-1': 'yesterday',
'1': 'tomorrow'
};
if (Math.abs(daysDiff) <= 1) {
dateText = days[daysDiff];
}
.add() 및 .subtract() 메서드를 사용하여 어제 및 내일 날짜를 얻을 수 있습니다.그런 다음 format 메서드를 사용하여 date.format("D/M/Y"), D는 Day, M은 Month, Y는 Year만 가져옵니다.Moment Docs
let currentMilli = Date.now()
let today = Moment(currentMilli).format("D/M/Y");
let tomorrow = Moment(currentMilli).add(1, 'days').format("D/M/Y");
let yesterday = Moment(currentMilli).subtract(1, 'days').format("D/M/Y");
결과는 다음과 같습니다.
Current Milli - 1576693800000
today - 19/12/2019
tomorrow - 18/12/2019
yesterday - 18/12/2019
const date = moment(YOUR_DATE)
return (moment().diff(date, 'days') >= 2) ? date.fromNow() : date.calendar().split(' ')[0]
반응 기본의 날짜 선택기에서 과거 및 미래 날짜 추가
import DateTimePickerModal from "react-native-modal-datetime-picker";
import moment from 'moment';
let addFutureDay = new Date();
addFutureDay = moment(addFutureDay).add(2, 'day').format('MM/DD/YYYY');
const FutureMonthAdd = moment(addFutureDay, 'MM/DD/YYYY').toDate();
let addPastDate = new Date();
addPastDate = moment(addPastDate).add(-2, 'day').format('MM/DD/YYYY');
const PastMonthAdd = moment(addPastDate, 'MM/DD/YYYY').toDate();
return (
<View>
<Text> DatePickerDemo </Text>
<Button title="Show Date Picker" onPress={showDatePicker} />
<DateTimePickerModal
isVisible={isDatePickerVisible}
mode="date"
minimumDate={PastMonthAdd}
maximumDate={FutureMonthAdd}
onConfirm={handleConfirm}
onCancel={hideDatePicker}
/>
</View>
)
공식화된 Date= moment(날짜).형식("DD-MM-YYYHh:mm:ssa")
공식화된 Date2= moment(날짜).형식("DD-MM-YYYH:mmA") // DD-MM-YYYH:mma
언급URL : https://stackoverflow.com/questions/35441820/tomorrow-today-and-yesterday-with-momentjs
'source' 카테고리의 다른 글
즉시 실행할 때마다 커밋이 필요합니까? (0) | 2023.10.04 |
---|---|
XML 형식의 줄 바꿈? (0) | 2023.10.04 |
xcode6 베타 6 osx 스위프트 프로젝트에서 개체('po')를 인쇄할 수 없습니다. (자동 가져오기 오류: AST 컨텍스트에서 '_ObjC' 모듈을 가져오지 못했습니다.) (0) | 2023.10.04 |
"제어가 비공수 기능의 끝에 도달한다"는 것은 무엇을 의미합니까? (0) | 2023.10.04 |
Case insensitivity with angularjs ui-router (0) | 2023.10.04 |