Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python到JavaScript的unix时间转换_Javascript_Python_Datetime - Fatal编程技术网

Python到JavaScript的unix时间转换

Python到JavaScript的unix时间转换,javascript,python,datetime,Javascript,Python,Datetime,在JavaScript中: 新日期(2014年5月1日).getTime() //结果:1401561000000 使用python时: 导入时间 导入日期时间 time.mktime(datetime.datetime(2014,5,1).timetuple()) #结果->1398882600.0 如何将python时间转换为JavaScript unix时间戳?JavaScript的纪元时间从其月份索引0开始。因此,如果希望在JavaScript中获得April,则输入的月份是错误的

在JavaScript中:

新日期(2014年5月1日).getTime()
//结果:1401561000000
使用python时:

导入时间
导入日期时间
time.mktime(datetime.datetime(2014,5,1).timetuple())
#结果->1398882600.0

如何将python时间转换为JavaScript unix时间戳?

JavaScript的纪元时间从其月份索引0开始。因此,如果希望在JavaScript中获得April,则输入的月份是错误的

要修复JavaScript使其与Python相同,请执行以下操作:

var time = new Date(2014, 4, 1).getTime()/1000;
// time = 1398916800

让我们比较两个结果:

  • JavaScript:
    1401561000
    –2014年5月31日18:30:00 UTC(请注意,
    getTime()
    提供毫秒数,因此需要除以1000)
  • Python:
    1398882600
    –30.04.2014 18:30:00 UTC
  • 所以实际上有两个问题:

    首先,在JavaScript中,月份索引从
    0
    (0=一月)开始,而在Python中,它从
    1
    (1=一月)开始。这就是一个月补偿的来源

    第二个问题是时区问题。您的本地时间似乎是UTC-05:30,这就是偏移量的来源。当您用两种语言创建日期时,您总是使用本地时间,因此您的时区偏移量会被考虑在内。如果要输入UTC日期,也可以这样做。在JavaScript中,由于以下原因,它非常简单:

    Date.UTC(2014年5月1日)/1000//1401580800
    日期:UTC(2014年4月1日)/1000//1398902400
    
    然而,在Python中,它有点复杂,因为默认情况下,
    datetime
    对象不知道时区,但
    time.mktime
    为传递的元组假定本地时间。要解决此问题,您可以通过明确指定时区或自己执行计算,使
    datetime
    对象感知:

    >datetime.datetime(2014,6,1,tzinfo=timezone.utc).timestamp()
    1401580800
    >>>datetime.datetime(2014,5,1,tzinfo=timezone.utc).timestamp()
    1398902400
    >>>(datetime.datetime(2014,6,1)-datetime.datetime(1970,1,1))/datetime.timedelta(秒=1)
    1401580800
    >>>(datetime.datetime(2014,5,1)-datetime.datetime(1970,1,1))/datetime.timedelta(秒=1)
    1398902400