Javascript 从unix时间戳到日期时间

Javascript 从unix时间戳到日期时间,javascript,date,datetime,momentjs,Javascript,Date,Datetime,Momentjs,我有类似于/Date(1370001284000+0200)/的时间戳。我想这是一次unix约会,不是吗?如何将此日期转换为这样的日期:31.05.2013 13:54:44 我试过1370001284的转换器,它给出了正确的日期。所以它是以秒为单位的 但我还是错了日期: var substring = unix_timestamp.replace("/Date(", ""); substring = substring.replace("000+0200)/", ""); var date =

我有类似于
/Date(1370001284000+0200)/
的时间戳。我想这是一次unix约会,不是吗?如何将此日期转换为这样的日期:
31.05.2013 13:54:44

我试过1370001284的转换器,它给出了正确的日期。所以它是以秒为单位的

但我还是错了日期:

var substring = unix_timestamp.replace("/Date(", "");
substring = substring.replace("000+0200)/", "");
var date = new Date();
date.setSeconds(substring);
return date;
注意我对
t.format
的使用来自于使用,它不是JavaScript标准
Date
原型的一部分

Unix时间戳是自UTC 1970-01-01 00:00:00以来的秒数

+0200
的存在意味着数字字符串不是Unix时间戳,因为它包含时区调整信息。你需要分开处理

如果时间戳字符串以毫秒为单位,则可以使用毫秒构造函数将日期格式化为字符串:

var t = new Date( 1370001284000 );
var formatted = t.format("dd.mm.yyyy hh:MM:ss");
如果时间戳字符串以秒为单位,则使用
setSeconds

var t = new Date();
t.setSeconds( 1370001284 );
var formatted = t.format("dd.mm.yyyy hh:MM:ss");

/Date(ms+时区)/
是用于JSON日期的ASP.NET语法。您可能希望使用类似的库来解析此类日期。如果您以后需要处理或打印日期,它将派上用场。

看起来您可能需要ISO格式,以便保留时区

var dateTime = new Date(1370001284000);
dateTime.toISOString(); // Returns "2013-05-31T11:54:44.000Z"
导入力矩js:

var fulldate = new Date(1370001284000);
var converted_date = moment(fulldate).format(");
没有moment.js:

var-time-to-show=1509968436;//unix时间戳(秒)
var t=新日期(显示时间*1000);
var formatted=('0'+t.getHours()).slice(-2)+':'+('0'+t.getMinutes()).slice(-2);
文件。编写(格式化)如果使用react:

import Moment from 'react-moment';
Moment.globalFormat = 'D MMM YYYY';
然后:

{1370001284}

我想补充一点,使用javascript中的库momentjs,您可以在一个对象中拥有完整的数据信息,包括:

const today = moment(1557697070824.94).toObject();
应获取具有以下属性的对象:

today: {
  date: 15,
  hours: 2,
  milliseconds: 207,
  minutes: 31,
  months: 4
  seconds: 22,
  years: 2019
}

当您必须计算日期时,它非常有用。

如果您使用React我发现库更易于处理前端相关任务,只需导入
组件并添加
unix
道具:

import Moment from 'react-moment'

 // get date variable
 const {date} = this.props 

 <Moment unix>{date}</Moment>
从“反应时刻”导入时刻
//获取日期变量
const{date}=this.props
{date}

您的代码是否生成了时间戳值,还是超出了您的控制范围?我这样问是因为
1370001284000+0200
不是有效的时间戳,因为它看起来像毫秒,而不是秒,并且包含区域信息。我无法控制。正因为如此,我真的不确定它是什么。但我知道1370001284000+0200和31.05.2013 13:54:44匹配。假设您的子字符串为“1370001284000”(从历元开始的毫秒数),您只需执行
var date=new date(parseInt(substring,10))在一年中不使用momentjs的最佳答案大约是2056。所以它必须是毫秒。我尝试了var日期=新日期(1370001284000);但上面写着无效日期。编辑:我觉得时间戳有点奇怪,因为如果我使用timestamp*100之类的方法,我会得到一个有效日期,但是4500年左右。你需要从字符串中去掉
+0200
部分,转换成一个数字,然后将其作为
日期(毫秒)的参数提供
constructor.@Dai
t.format不是一个函数
它需要什么?@mu3我引用了OP的话,正如你所指出的,他似乎在使用矩.js。我的时间戳是UTC格式的。我需要在这里做些什么改变吗?我怎么能有am/pm?你在给一个三年前的问题添加答案。一般来说,最好是解释(在答案中)为什么你觉得这个答案比现有的答案好。否则,它很可能被否决或被完全删除。
import Moment from 'react-moment'

 // get date variable
 const {date} = this.props 

 <Moment unix>{date}</Moment>