source

유닉스 타임스탬프를 캘린더 date moment.js로 변환하는 방법

ittop 2023. 7. 26. 22:29
반응형

유닉스 타임스탬프를 캘린더 date moment.js로 변환하는 방법

unix 타임스탬프가 있으며 다음과 같은 달력 날짜로 변환하려고 합니다.MM/DD/YYYY지금까지 저는 다음과 같습니다.

$(document).ready(function() {
  var value = $("#unixtime").val(); //this retrieves the unix timestamp
  var dateString = moment(value).calendar(); 
  alert(dateString);
});

달력 날짜를 인쇄하려고 하면 창에 "잘못된 날짜"라고 표시됩니다.누가 저 좀 도와주실 수 있나요?

요청하신 대로 moment.js를 사용하여 unix 타임스탬프를 초 단위로 수락하는 방법이 있습니다.

var dateString = moment.unix(value).format("MM/DD/YYYY");

UNIX 타임스탬프는 1970년부터 초 단위이므로 JS Date 개체로 변환해야 합니다.

var date = new Date(unixTimestamp*1000);

Moment.js는 사용할 수 있는 지역화된 형식을 제공합니다.

다음은 예입니다.

const moment = require('moment');

const timestamp = 1519482900000;
const formatted = moment(timestamp).format('L');

console.log(formatted); // "02/24/2018"

그것뿐이야,

moment.unix(date).toDate();

조금 늦을 수도 있지만 이와 같은 새로운 문제에 대해서는 다음 코드를 사용합니다.

moment(timestamp, 'X').format('lll');

필요에 맞게 형식을 변경하고 다음과 같은 표준 시간대를 추가할 수 있습니다.

moment(timestamp, 'X').tz(timezone).format('lll');

참조: https://momentjs.com/docs/ #/sys/string/

경고: 문자열 구문 분석에 대한 브라우저 지원이 일치하지 않습니다.지원해야 하는 형식에 대한 사양이 없으므로 일부 브라우저에서 작동하는 작업은 다른 브라우저에서 작동하지 않습니다.

ISO 8601 문자열 이외의 문자열을 구문 분석하는 일관된 결과를 얻으려면 문자열 + 형식을 사용해야 합니다.

moment('2022-12-03').format('YYYY-MM-DD'); //avoid use this because inconsistentcy
moment('2022-12-03','YYYY-MM-DD').format('YYYY-MM-DD'); //use this instead
moment('1670000400','X').format('YYYY-MM-DD'); //use this instead (timestamp)
moment('03-2022-12','DD-YYYY-MM').format('YYYY-MM-DD'); //UNCOMMON CASE
moment(1454521239279).toDate()
moment(1454521239279).format()
new moment(timeStamp,'yyyyMMddHHmmssfff').toDate()
$(document).ready(function() {
    var value = $("#unixtime").val(); //this retrieves the unix timestamp
    var dateString = moment(value, 'MM/DD/YYYY', false).calendar(); 
    alert(dateString);
});

엄격한 모드와 용서 모드가 있습니다.

대부분의 상황에서 엄격 모드가 더 잘 작동하지만, 허용 모드는 모멘트로 전달되는 문자열의 형식이 다를 수 있을 때 매우 유용할 수 있습니다.

이후 릴리스에서는 파서가 기본적으로 엄격 모드를 사용합니다.엄격 모드에서는 구분 기호를 포함하여 지정된 형식과 정확하게 일치하는 시점의 입력이 필요합니다.엄격 모드는 모멘트 함수에 세 번째 파라미터로 true를 전달하여 설정됩니다.

용서 모드가 유용한 일반적인 시나리오는 타사 API가 날짜를 제공하고 있으며 해당 API의 날짜 형식이 변경될 수 있는 경우입니다.API가 'YYYY-MM-DD' 형식으로 날짜를 보내는 것으로 시작하고 나중에 'MM/DD/YYY' 형식으로 변경된다고 가정합니다.

엄격 모드에서는 다음 코드가 '잘못된 날짜'를 표시합니다.

moment('01/12/2016', 'YYYY-MM-DD', true).format()
"Invalid date"

형식 문자열을 사용하는 용서 모드에서는 날짜가 잘못 표시됩니다.

moment('01/12/2016', 'YYYY-MM-DD').format()
"2001-12-20T00:00:00-06:00"

또 다른 방법은

$(document).ready(function() {
    var value = $("#unixtime").val(); //this retrieves the unix timestamp
    var dateString = moment.unix(value).calendar(); 
    alert(dateString);
});

이 함수는 타임스탬프에서 날짜를 만듭니다.

    function formatDateTime(dateString) {
        const parsed = moment(new Date(dateString))

        if (!parsed.isValid()) {
            return dateString
        }

        return parsed.format('MMM D, YYYY, HH:mmA')
    }

타임스탬프가 있었어요.1668919452.

이렇게 하면 적절한 결과를 얻을 수 있습니다.{moment.unix(created).format("l")}

는 습다니했가를 했습니다..unix방법.

그전에 타임스탬프는 1970년대로 등록되었습니다.

저는 이 예시와 같이 고쳤습니다.

$scope.myCalendar = new Date(myUnixDate*1000);
<input date-time ng-model="myCalendar" format="DD/MM/YYYY" />
moment(timestamp).format('''any format''')

먼저 타임스탬프를 js를 사용하여 날짜 개체로 변환할 수 있습니다.

constate = new Date(타임스탬프)

그런 다음 momentjs를 사용하여 원하는 방식으로 포맷할 수 있습니다.

const formatDate = 모멘트(날짜).형식("DD/MM/YYY")

사용: moment.unix(timeSpan).형식(DD/MM/YYY')

언급URL : https://stackoverflow.com/questions/20943089/how-to-convert-unix-timestamp-to-calendar-date-moment-js

반응형