Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
函数将时间戳转换为javascript中的人工日期_Javascript_Node.js_Date_Express_Timestamp - Fatal编程技术网

函数将时间戳转换为javascript中的人工日期

函数将时间戳转换为javascript中的人工日期,javascript,node.js,date,express,timestamp,Javascript,Node.js,Date,Express,Timestamp,如何使用javascript中的函数将此时间戳1382086394000转换为2013-10-18 08:53:14?目前我有这个功能: function cleanDate(d) {return new Date(+d.replace(/\/Date\((\d+)\)\//, '$1'));} 为什么不简单 new Date (timestamp); 日期是一个日期,它的格式是另一回事。值1382086394000可能是一个时间值,它是自1970-01-01T00:00:00Z以来的毫秒数

如何使用javascript中的函数将此时间戳
1382086394000
转换为
2013-10-18 08:53:14
?目前我有这个功能:

function cleanDate(d) {return new Date(+d.replace(/\/Date\((\d+)\)\//, '$1'));}
为什么不简单

new Date (timestamp);
日期是一个日期,它的格式是另一回事。

值1382086394000可能是一个时间值,它是自1970-01-01T00:00:00Z以来的毫秒数。您可以使用它创建ECMAScript日期对象,方法是:

如何将其转化为可读性取决于您。简单地将其发送到输出应该调用内部(完全依赖于实现)toString方法*,该方法通常以人类可读的形式打印等效的系统时间,例如

Fri Oct 18 2013 18:53:14 GMT+1000 (EST) 
在ES5中,还有一些其他内置格式选项:

等等。请注意,大多数依赖于实现,并且在不同的浏览器中会有所不同。如果您希望在所有浏览器中使用相同的格式,则需要自己设置日期格式,例如:

alert(d.getDate() + '/' + (d.getMonth()+1) + '/' + d.getFullYear());

*Date.prototype.toString的格式已在中标准化。它在所有实现中无处不在可能需要一段时间,但至少现在更常见的浏览器支持它。

这很好。已签入
chrome
浏览器:

var theDate = new Date(timeStamp_value * 1000);
dateString = theDate.toGMTString();
alert(dateString );
可以将unix时间戳转换为任何自定义格式

在这种情况下:
var time=moment(1382086394000).format(“DD-MM-yyyyy h:MM:ss”)

将打印
18-10-2013 11:53:14


这就证明了这一点。

以下是解决每个日期格式混淆的简单方法:

对于当前日期:

var current_date=new Date();
var timestamp=new Date().getTime();
要获取当前日期的时间戳,请执行以下操作:

var current_date=new Date();
var timestamp=new Date().getTime();
要将特定日期转换为时间戳,请执行以下操作:

var timestamp_formation=new Date('mm/dd/yyyy').getTime();
要将时间戳转换为日期:

    var timestamp=new Date('02/10/2016').getTime();
    var todate=new Date(timestamp).getDate();
    var tomonth=new Date(timestamp).getMonth()+1;
    var toyear=new Date(timestamp).getFullYear();
    var original_date=tomonth+'/'+todate+'/'+toyear;

  OUTPUT:
 02/10/2016

我们需要使用JavaScript创建新函数

function unixTime(unixtime) {

    var u = new Date(unixtime*1000);

      return u.getUTCFullYear() +
        '-' + ('0' + u.getUTCMonth()).slice(-2) +
        '-' + ('0' + u.getUTCDate()).slice(-2) + 
        ' ' + ('0' + u.getUTCHours()).slice(-2) +
        ':' + ('0' + u.getUTCMinutes()).slice(-2) +
        ':' + ('0' + u.getUTCSeconds()).slice(-2) +
        '.' + (u.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) 
    };

console.log(unixTime(1370001284))

2016-04-30 08:36:26.000

formattate
是一个函数,您可以调用它并将要格式化的日期传递到
dd/mm/yyyy

var unformatedDate=新日期(“2017-08-10 18:30:00”);
$(“#您好”).append(formattate(unformatedDate));
函数formatDate(nowDate){
返回nowDate.getDate()+“/”+(nowDate.getMonth()+1)+'/'+nowDate.getFullYear();
}

从给定日期开始计算时间戳中的日期

//要从正常日期获取时间戳日期:格式为-156010000000

//输入日期的格式可以是:“2019-06-09T18:30:00.000Z”


输出:1560018600000

我的ES6变体生成如下字符串
2020-04-05\u 16:39:45.85725
。请随意修改return语句以获得所需的格式:

const getDateStringServ = timestamp => {

  const plus0 = num => `0${num.toString()}`.slice(-2)

  const d = new Date(timestamp)

  const year = d.getFullYear()
  const monthTmp = d.getMonth() + 1
  const month = plus0(monthTmp)
  const date = plus0(d.getDate())
  const hour = plus0(d.getHours())
  const minute = plus0(d.getMinutes())
  const second = plus0(d.getSeconds())
  const rest = timestamp.toString().slice(-5)

  return `${year}-${month}-${date}_${hour}:${minute}:${second}.${rest}`
}

这就是我为instagram API所做的。用日期方法乘以1000转换时间戳。 然后分别添加所有实体,如(年、月等)

创建自定义月份列表名称,并使用返回月份索引的
getMonth()
方法进行映射

convertStampDate(unixtimestamp){

// Unixtimestamp

// Months array
var months_arr = ['January','February','March','April','May','June','July','August','September','October','November','December'];

// Convert timestamp to milliseconds
var date = new Date(unixtimestamp*1000);

// Year
var year = date.getFullYear();

// Month
var month = months_arr[date.getMonth()];

// Day
var day = date.getDate();

// Hours
var hours = date.getHours();

// Minutes
var minutes = "0" + date.getMinutes();

// Seconds
var seconds = "0" + date.getSeconds();

// Display date time in MM-dd-yyyy h:m:s format
var fulldate = month+' '+day+'-'+year+' '+hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

// filtered fate
var convdataTime = month+' '+day;
return convdataTime;
}
带stamp参数的调用
convertStampDate('1382086394000')


就是这样。

除了这里的所有答案之外,js日期/时间处理的实际标准是矩。js没有人提到它here@alonisser-也许是因为将时间值转换为日期很简单。格式化也不是特别困难。toGMTString()已被弃用,请使用toISOString()或ToutString()代替警告*-*:不要乘以
1000
。否则,你将超循环进入未来空间!!在将1586855504乘以1000后,我得到了正确的结果,否则它将提供1970乘以1000取决于时间戳的单位,秒或毫秒s@melpomene,代码的一半是不相关的,但我这样写是为了澄清关于日期形成的进一步疑问。。!!!还有一件事我没有从任何地方复制。我在我自己的代码中尝试过它,2天前我就做过。不管你是否真的复制了它。关键是,所有的信息都已经存在于另一个答案中。顺便说一句,您的上一个示例实际上并没有生成您声称的输出。显示的输出实际上与代码输出不匹配(2016年2月10日),听起来这太过分了,谢谢。这确实帮了我的忙。还有togmString(),但已弃用。我不明白为什么会有toLocalString(),因为在JS中,浏览器中的所有内容都是本地的。还是说ToLocalesting是对Nodejs的分离?如果您使用服务器端JS,并且客户端和服务器之间的时区不同,则会得到客户端区域?@timo对于试图呈现与用户格式首选项一致的格式的方法来说,使用“locale”是一个误称。不幸的是,它是基于语言的,这不是首选格式的一个特别好的决定因素。最好根据日期格式的系统首选项设置日期格式,而不是使用不太具体的语言代码。