将Unix时间戳转换为JavaScript中的时间

问题描述 投票:1079回答:27

我将时间作为Unix时间戳存储在MySQL数据库中,并将其发送到一些JavaScript代码。我怎么会得到时间呢?

例如,以HH / MM / SS格式。

javascript date time date-format time-format
27个回答
1610
投票

    let unix_timestamp =  1549312452 
    // Create a new JavaScript Date object based on the timestamp
    // multiplied by 1000 so that the argument is in milliseconds, not seconds.
    var date = new Date(unix_timestamp*1000);
    // Hours part from the timestamp
    var hours = date.getHours();
    // Minutes part from the timestamp
    var minutes = "0" + date.getMinutes();
    // Seconds part from the timestamp
    var seconds = "0" + date.getSeconds();
    
    // Will display time in 10:30:23 format
    var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
    
    console.log(formattedTime);

有关日期对象的更多信息,请参考MDNECMAScript 5 specification


17
投票
使用 function tm(unix_tm) { var dt = new Date(unix_tm*1000); document.writeln(dt.getHours() + '/' + dt.getMinutes() + '/' + dt.getSeconds() + ' -- ' + dt + '<br>'); } tm(60); tm(86400); ,您可以像这样获得时间和日期:

15
投票
上述解决方案的问题是,如果小时,分钟或秒只有一位数字(即0-9),则时间将是错误的,例如可能是2:3:9,但应该是02:03:09。

13
投票
另一种方式-从var dateTimeString = moment(1439198499).format("DD-MM-YYYY HH:mm:ss"); 日期开始。

13
投票
此刻必须使用Unix时间戳:

10
投票
基于@shomrat的答案,下面的代码片段会自动像这样写日期时间(有点类似于StackOverflow的答案日期:ISO 8601:]]

9
投票
不需要40 KB库的现代解决方案:

9
投票
我的时间戳是从PHP后端获取的。我尝试了上述所有方法,但没有成功。然后,我遇到了一个有效的教程:

7
投票
// Setup once var options = { //weekday: 'long', //month: 'short', //year: 'numeric', //day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' }, intlDate = new Intl.DateTimeFormat( undefined, options ); // Reusable formatter var timeStamp = 1412743273; console.log( intlDate.format( new Date( 1000 * timeStamp ) ) );

6
投票
注意一些答案,注意零问题。例如,时间戳记var d =val.timestamp; var date=new Date(+d); //NB: use + before variable name console.log(d); console.log(date.toDateString()); console.log(date.getFullYear()); console.log(date.getMinutes()); console.log(date.getSeconds()); console.log(date.getHours()); console.log(date.toLocaleTimeString()); 将错误地转换为1541415288860 Mon Nov 05 2018 2018 54 48 13 1:54:48 PM

5
投票
12/08/2015 0:49

281
投票

function timeConverter(UNIX_timestamp){
  var a = new Date(UNIX_timestamp * 1000);
  var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
  var year = a.getFullYear();
  var month = months[a.getMonth()];
  var date = a.getDate();
  var hour = a.getHours();
  var min = a.getMinutes();
  var sec = a.getSeconds();
  var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
  return time;
}
console.log(timeConverter(0));

4
投票
请参见

var timestamp = 1439329773; // replace your timestamp var date = new Date(timestamp * 1000); var formattedDate = ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear() + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2); console.log(formattedDate);


4
投票
您可以使用以下功能将时间戳转换为Date/Epoch Converter格式:

3
投票
time = convertTime(920535115, '/'); // --> OUTPUT = 09/11/55

2
投票
var convertTime = function(timestamp, separator) { var pad = function(input) {return input < 10 ? "0" + input : input;}; var date = timestamp ? new Date(timestamp * 1000) : new Date(); return [ pad(date.getHours()), pad(date.getMinutes()), pad(date.getSeconds()) ].join(typeof separator !== 'undefined' ? separator : ':' ); } document.body.innerHTML = '<pre>' + JSON.stringify({ 920535115 : convertTime(920535115, '/'), 1061351153 : convertTime(1061351153, ':'), 1435651350 : convertTime(1435651350, '-'), 1487938926 : convertTime(1487938926), 1555135551 : convertTime(1555135551, '.') }, null, '\t') + '</pre>';

2
投票
如果要将Unix持续时间转换为真实的小时,分​​钟和秒,则可以使用以下代码:

1
投票
function getDateTimeFromTimestamp(unixTimeStamp) { var date = new Date(unixTimeStamp); return ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear() + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2); } var myTime = getDateTimeFromTimestamp(1435986900000); console.log(myTime); // output 01/05/2000 11:00

1
投票
下面的代码还提供了三位数的毫秒,非常适合控制台日志前缀:

0
投票
moment.js

181
投票

JavaScript以毫秒为单位,因此您首先必须将UNIX时间戳从秒转换为毫秒。

var date = new Date(UNIX_Timestamp * 1000);
// Manipulate JavaScript Date object here...

76
投票

[我属于Jacob Wright的Date.format()库,该库以PHP的Date.format()函数的样式实现了JavaScript日期格式。

date()

52
投票

这是将秒格式为date()的最短的单线解决方案:

new Date(unix_timestamp * 1000).format('h:i:s')

[方法hh:mm:ss返回时间简化的扩展/** * Convert seconds to time string (hh:mm:ss). * * @param Number s * * @return String */ function time(s) { return new Date(s * 1e3).toISOString().slice(-13, -5); } console.log( time(12345) ); // "03:25:45" 格式,其长度为[[总是 24或27个字符(即Date.prototype.toISOString()Date.prototype.toISOString())。时区始终是零UTC偏移。

注意:此解决方案不需要任何第三方库,并且所有现代浏览器和JavaScript引擎都支持此解决方案。


49
投票
用途:

和时间:

YYYY-MM-DDTHH:mm:ss.sssZ
请参见±YYYYYY-MM-DDTHH:mm:ss.sssZ

28
投票
我会考虑使用类似var s = new Date(1504095567183).toLocaleDateString("en-US") // expected output "8/30/2017" console.log(s);的库,这使这变得非常简单:

基于Unix时间戳:

var s = new Date(1504095567183).toLocaleTimeString("en-US") // expected output "3:19:27 PM" console.log(s)

基于MySQL日期字符串:

Date.prototype.toLocaleDateString()


21
投票
UNIX时间戳是自1970年1月1日00:00:00 UTC以来的

秒(根据momentjs.com)。

自Javascript中的Date对象的参数是自1970年1月1日00:00:00 UTC以来的

毫秒]数(根据var timestamp = moment.unix(1293683278); console.log( timestamp.format("HH/mm/ss") ); )。

例如,请参见下面的代码:

var now = moment("2010-10-10 12:03:15"); console.log( now.format("HH/mm/ss") );

给予:

Wikipedia


19
投票
将秒格式为hh:mm:ss:变体的最短的一线解决方案:
© www.soinside.com 2019 - 2024. All rights reserved.