Javascript转换日期时间字符串到Epoch

时间:2012-12-04 16:25:57

标签: javascript datetime epoch

所以我放弃了...一直试图这样做;

我有一个字符串,以dd/MM/yyyy hh:mm04/12/2012 07:00)格式提供日期和时间。

我需要将其转换为大纪元日期,以便我可以对其进行一些计算。我无法修改日期时间发送给我的格式。

JavaScript或jQuery很好。

10 个答案:

答案 0 :(得分:27)

var someDate = new Date(dateString);
someDate = someDate.getTime();

答案 1 :(得分:21)

从epoch开始,

JavaScript dates内部存储为毫秒。您只需要将其转换为数字,例如使用一元+运算符来获取它们。或者您可以使用.getTime method

更难解析你的日期字符串。您可能会使用正则表达式从字符串中提取值并将其传递到Date.UTC

var parts = datestring.match(/(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2})/);
return Date.UTC(+parts[3], parts[2]-1, +parts[1], +parts[4], +parts[5]);

这将为您的示例日期提供1354604400000 ms

答案 2 :(得分:12)

您可以使用momentjs库轻松完成此操作。

var epoch = moment(str).unix();

http://momentjs.com/

答案 3 :(得分:8)

您可以使用Date.parse(date)

function epoch (date) {
  return Date.parse(date)
}

const dateToday = new Date() // Mon Jun 08 2020 16:47:55 GMT+0800 (China Standard Time)
const timestamp = epoch(dateToday)

console.log(timestamp) // => 1591606075000

答案 4 :(得分:4)

我使用此代码将我的字符串日期时间转换为纪元

new Date(<datetime string>').getTime()

例如:

let epoch = new Date('2016-10-11').getTime()

答案 5 :(得分:2)

var time = new Date().getTime() / 1000 + 900 + 330*60;

console.log("time = "+time);

getTime()将返回当前时间,最后3位为milleseconds,因此首先将其除以1000。现在我已经从当前时间增加了900个手段15分钟(如果你不需要进一步的延迟时间你可以删除),需要330 * 60(5小时30)将GMT时间转换为IST,这是我目前的区域时间。

使用以下网站测试您的时间: -

https://www.epochconverter.com/

enter image description here

希望它会对你有所帮助:)。

答案 6 :(得分:1)

Number(new Date('04/12/2012 07:00'))

答案 7 :(得分:0)

我的答案是使用JavaScript将当前时间转换为纪元时间

const currentDate = Math.floor(new Date()/ 1000);

console.log( currentDate ); //无论要打印什么值,您都可以在此网站https://www.epochconverter.com/上检查相同的值以确认。

答案 8 :(得分:0)

最简单的方法是-

const moment = require('moment')


 function getUnixTime () { return this.getTime() / 1000 | 0 }
let epochDateTime = getUnixTime(new Date(moment().add(365, 'days').format('YYYY- 
MM-DD hh:mm:ss')))  

答案 9 :(得分:0)

由于您的日期格式是 dd/MM/yyyy hh:mm,您需要更改日期格式(步骤 1)。否则,您可以转到(第 2 步)。

步骤 1. 将日期格式更改为 MM/dd/yyyy hh:mm

  var currentTime   = "21/02/2021 12:00"
  var monthPosition = currentTime.split('/', 2).join('/').length
  var day           = currentTime.substring(0, currentTime.indexOf('/'))
  var month         = currentTime.substring(currentTime.indexOf('/') + 1, monthPosition);
  var time          = month + "/" + day + currentTime.substring(month.length + day.length  + 1); //"02/21/2021 12:00"

第 2 步:将日期更改为纪元时间

var epochTime = Date.parse(time);

//or get current time of epoch time
var currentEpoch = Date.parse(new Date());

注意:如果您尝试使用 new Date() 执行 Date.parse(),并且解析日期字符串时出错,请添加 toString()

var currentEpoch = Date.parse(new Date().toString());