从js中的时间戳中提取时间

Shu*_*ane 5 javascript date momentjs

我有纪元时间戳值,我想从中提取时间。例如:输入1480687432 i.e.(Fri Dec 02 2016 14:03:52 GMT+0530 (IST))输出14:03:52,我想将它与日落/日出时间(也用于未来的日出/日落时间)进行比较,以确定它是白天还是黑夜。我使用下面的方法,任何人都可以请建议比这更好的办法,javascriptmoment.js

var input = 1480687432; //  i.e.(Fri Dec 02 2016 14:03:52 GMT+0530 (IST))` 
// output 14:03:52

function getTimeFromDate(timestamp) {
  var date = new Date(timestamp * 1000);
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var seconds = date.getSeconds();

  var time = new Date();
  return time.setHours(hours, minutes, seconds);
}
console.log(getTimeFromDate(1480687432))
Run Code Online (Sandbox Code Playgroud)

the*_*heB 9

Javascript 为此有一个内置函数。您可以根据需要使用以下任何一项。

var timestamp = 1480687432 * 1000;
console.log(new Date(timestamp).toTimeString());
console.log(new Date(timestamp).toLocaleTimeString());
Run Code Online (Sandbox Code Playgroud)


mpl*_*jan 8

现在你的函数也返回一个时间戳,但它修改了相对于今天的日期

如果你不想那样,你可以这样做

const getTimeFromDate1 = timestamp => new Date(timestamp*1000).getTime(); 
Run Code Online (Sandbox Code Playgroud)

const getTimeFromDate1 = timestamp => new Date(timestamp*1000).getTime(); 
Run Code Online (Sandbox Code Playgroud)

也许你的意思是这个(在我的时区返回 15:03:52)

const getTimeFromDate1 = timestamp => new Date(timestamp * 1000).getTime();


var input = 1480687432; //  i.e.(Fri Dec 02 2016 14:03:52 GMT+0530 (IST))` 
// output 14:03:52

function getTimeFromDate2(timestamp) { // original code
  var date = new Date(timestamp * 1000);
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var seconds = date.getSeconds();

  var time = new Date();
  return time.setHours(hours, minutes, seconds);
}

// my code

console.log(new Date(getTimeFromDate1(1480687432))) // works as expected

// Your code

console.log(new Date(getTimeFromDate2(1480687432))) // does not return the original date
Run Code Online (Sandbox Code Playgroud)