我有一个unix时间戳,例如1313564400000.00。如何将其转换为Date对象并相应地获得月/年/日?以下内容不起作用:
function getdhm(timestamp) {
var date = Date.parse(timestamp);
var month = date.getMonth();
var day = date.getDay();
var year = date.getYear();
var formattedTime = month + '/' + day + '/' + year;
return formattedTime;
}
答案 0 :(得分:21)
var date = new Date(1313564400000);
var month = date.getMonth();
等
这将在用户浏览器的当地时间。
答案 1 :(得分:7)
而不是使用parse
(用于将日期字符串转换为Date
),只需将其传递给Date
构造函数:
var date = new Date(timestamp);
当然,请确保您的时间戳为Number
。
答案 2 :(得分:1)
一个古老的问题,但没有一个答案似乎完整,还有2020年的更新:
例如:(如果使用微秒精度,例如performance.now(),则可能会有一个小数)
let timestamp = 1586438912345.67;
我们有:
var date = new Date(timestamp); // Thu Apr 09 2020 14:28:32 GMT+0100 (British Summer Time)
let year = date.getFullYear(); // 2020
let month = date.getMonth() + 1; // 4 (note zero index: Jan = 0, Dec = 11)
let day = date.getDate(); // 9
如果您希望月份和日期始终是两位数字的字符串(例如“ 01”):
let month = (date.getMonth() + 1).toString().padStart(2, '0'); // "04"
let day = date.getDate().toString().padStart(2, '0'); // "09"
为了扩展完整性:
let hour = date.getHours(); // 14
let minute = date.getMinutes(); // 28
let second = date.getSeconds(); // 32
let millisecond = date.getMilliseconds(); // 345
let epoch = date.getTime(); // 1586438912345 (Milliseconds since Epoch time)
此外,如果您的时间戳实际上是要开始的字符串(例如,可能来自JSON对象):
var date = new Date(parseFloat(timestamp));
更多信息here(2017年)。