moment 시간대 처리 소감

1387 단어 Reactmoment
시간대:https://baike.baidu.com/item/%E6%97%B6%E5%8C%BA/491122?fr=aladdin
타임스탬프(그리니치):https://baike.baidu.com/item/%E6%97%B6%E9%97%B4%E6%88%B3
 

1. 해당 시간대 날짜로 전환


moment 대상 형식이 직접 조작할 수 없으면 원시 대상의 값을 수정할 수 있습니다. 가장 많은 부분은 시간 선택 구성 요소입니다.disabledDate가 함수를 전송할 때clone () 을 사용해야 합니다.
 
//   '2019-03-12 00:00:00'   1552320000  

const time_zone = 9;

moment(1552320000 * 1000).subtract(moment().utcOffset() / 60 - time_zone,'hours').format('YYYY-MM-DD HH:mm:ss');

// 2019-03-12 01:00:00 ( x1h)

 

2. 대응 시간대로 전환해서 오늘 00:00:00


시간대에 대응하는 오늘이 반드시 오늘 00:00:00의 시간 스탬프에서 시간대 편이 시간을 빼는 것은 아니다
const time_zone = -11;

const diff = moment().utcOffset() / 60 - time_zone;

moment()

.subtract((24 + (moment().hour() - diff)) % 24, 'hours')

.startOf('hour'); //  

 
 

3. 시간차


moment의 diff는 정돈 알고리즘이다. 예를 들어 현재 시간 2019-03-12 01:00:00, 그러면 diff 2019-03-13 00:00:00은 0을 얻을 수 있고 두 번째 파라미터가true에 전송되어 소수위를 얻고 천장 함수를 사용할 수 있다.
//  23 diff 

const today = moment();

const yesterday = moment().subtrct(23,'hours');

today.diff(yesterday,'days') // 0 ???

today.diff(yesterday,'days',true) // 0.9583333333333334 

Math.ceil(today.diff(yesterday,'days')) // 1  0 Math.floor


좋은 웹페이지 즐겨찾기