문제

Python에서 Calendar.timegm ()을 사용하여 Unix 타임 스탬프에 대해 10 자리 결과를 얻습니다. 이것을 javscript의 settime () 함수에 넣으면 1970 년에 날짜가 나옵니다. 13 자리 길이 인 Unix 타임 스탬프가 필요합니다. 어떻게 이런 일이 일어날 수 있습니까? 둘 다 같은 날짜부터 계산하고 있습니까?

이 두 언어간에 동일한 Unix 타임 스탬프를 어떻게 사용할 수 있습니까?

파이썬에서 :

In [60]: parseddate.utctimetuple()
Out[60]: (2009, 7, 17, 1, 21, 0, 4, 198, 0)
In [61]: calendar.timegm(parseddate.utctimetuple())
Out[61]: 1247793660

Firebug에서 :

>>> var d = new Date(); d.setTime(1247793660); d.toUTCString()
"Thu, 15 Jan 1970 10:36:55 GMT"
도움이 되었습니까?

해결책

TimeGM은 UNIX를 기반으로합니다 gmtime () 1970 년 1 월 1 일 이후 몇 초를 반환하는 방법.

자바 스크립트 settime () 방법은 해당 날짜 이후 밀리 초입니다. JavaScript에서 예상되는 형식으로 변환하려면 초 1000 초를 곱해야합니다.

다른 팁

다음은 JavaScript/DateTime으로 전환하는 데 사용하는 몇 가지 파이썬 방법입니다.

def to_datetime(js_timestamp):
    return  datetime.datetime.fromtimestamp(js_timestamp/1000)

def js_timestamp_from_datetime(dt):
    return 1000 * time.mktime(dt.timetuple())

JavaScript에서는 다음과 같습니다.

var dt = new Date();
dt.setTime(js_timestamp);

1970 년 초를 밀리 초 Sece-1970과 혼합하고 있습니까?

자바 스크립트 날짜 생성자 밀리 초과 함께 작동하면 Python Unix 시간에 1000을 곱해야합니다.

var unixTimestampSeg = 1247793660;
var date = new Date(unixTimestampSeg*1000);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top