35

所以我放弃了……整天都在尝试这样做;

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

我需要把它变成一个纪元日期,这样我就可以对其进行一些计算。我无法修改发送给我的日期时间格式。

JavaScript 或 jQuery 都可以。

4

10 回答 10

52
var someDate = new Date(dateString);
someDate = someDate.getTime();
于 2012-12-04T16:30:27.707 回答
28

您可以使用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
于 2020-06-08T08:51:26.167 回答
25

JavaScript 日期在内部存储为自纪元以来的毫秒数。您只需要将其转换为数字,例如使用一元运算+符,即可获得它们。或者你可以使用.getTime方法

更难的是解析您的日期字符串。您可能会使用正则表达式从字符串中提取值并将它们传递给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您的示例日期产生。

于 2012-12-04T16:29:31.460 回答
16

您可以使用 momentjs 库来相当容易地做到这一点。

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

http://momentjs.com/

于 2013-06-24T20:56:03.603 回答
9

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

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

例如 :

let epoch = new Date('2016-10-11').getTime()
于 2016-10-11T08:56:58.253 回答
5
Number(new Date('04/12/2012 07:00'))
于 2021-06-20T22:12:27.940 回答
2
var time = new Date().getTime() / 1000 + 900 + 330*60;

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

getTime() 将返回当前时间,最后 3 位以毫秒为单位,因此首先将其除以 1000。现在我添加了 900 表示我需要从当前时间开始的 15 分钟(如果您不需要进一步的延迟时间,您可以删除),需要 330*60(5 小时 30)将 GMT 时间转换为我当前区域的 IST时间。

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

https://www.epochconverter.com/

在此处输入图像描述

希望它会帮助你:)

于 2017-07-20T12:12:18.547 回答
2

由于您的日期格式是 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());
于 2021-02-20T16:39:12.867 回答
1

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

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

控制台.log(当前日期);//无论它将打印什么值,您都可以在该网站https://www.epochconverter.com/检查相同的值以确认。

于 2018-07-19T10:14:15.753 回答
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')))  
于 2019-10-24T13:12:01.317 回答