js中从时间戳中提取时间

问题描述 投票:0回答:3

我有纪元时间戳值,我想从中提取时间。 例如:输入

1480687432 i.e.(Fri Dec 02 2016 14:03:52 GMT+0530 (IST))
输出
14:03:52
,我想将其与日落/日出时间进行比较(也用于将来的惊喜/日落时间)以找出是白天还是晚上。我正在使用以下方法,任何人都可以在
javascript
中的
moment.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))

javascript date momentjs
3个回答
9
投票

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

var timestamp = 1480687432 * 1000;
console.log(new Date(timestamp).toTimeString());
console.log(new Date(timestamp).toLocaleTimeString());

8
投票

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

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

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

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

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

const pad = num => ("0" + num).slice(-2); // or use padStart

const getTimeFromDate = timestamp => {
  const date = new Date(timestamp * 1000);
  let hours = date.getHours(),
    minutes = date.getMinutes(),
    seconds = date.getSeconds();
  return pad(hours) + ":" + pad(minutes) + ":" + pad(seconds)
}
//  Fri Dec 02 2016 14:03:52 GMT+0530 (IST)
console.log(getTimeFromDate(1480687432))


0
投票

从时间戳获取准确的日期和时间:

export const getDateTime = (timestamp: number): { formattedDate: string; formattedTime: string } => {
    // Create a new Date object with the timestamp
    const date = new Date(timestamp*1000);

    // Extract date components
    const year = date.getFullYear();
    const month = date.getMonth() + 1; // Month is zero-based, so we add 1
    const day = date.getDate();

    // Extract time components
    const hours = date.getHours();
    const minutes = date.getMinutes();
    const seconds = date.getSeconds();

    // Format the date and time as needed
    const formattedDate = `${day < 10 ? '0' : ''}${day}-${month < 10 ? '0' : ''}${month}-${year}`;
    const formattedTime = `${hours < 10 ? '0' : ''}${hours}:${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;

    // Return formatted date and time
    return { formattedDate, formattedTime };
};

用途:

<p>{getDateTime(Number(s.timestamp)).formattedDate} - ({getDateTime(Number(s.timestamp)).formattedTime})</p>

输出:

© www.soinside.com 2019 - 2024. All rights reserved.