我想使用 javascript 将UTC 时间值(例如 1367214805)转换为日期(以dd-mm-yyyy格式)。
例如,如果我们在 PHP 中使用...
<?php Date("d-m-Y",'1367214805'); ?>
...我们直接获取 dd-mm-yyyy 格式的日期。
javascript中有这样的功能吗?- 我在javascript中以各种方式尝试了Date(),但每次它都在打印当前日期和时间!
谢谢
我想使用 javascript 将UTC 时间值(例如 1367214805)转换为日期(以dd-mm-yyyy格式)。
例如,如果我们在 PHP 中使用...
<?php Date("d-m-Y",'1367214805'); ?>
...我们直接获取 dd-mm-yyyy 格式的日期。
javascript中有这样的功能吗?- 我在javascript中以各种方式尝试了Date(),但每次它都在打印当前日期和时间!
谢谢
您可以使用toISOString方法并忽略T
例如之后的所有内容
var isoDateStr = myDate.toISOString();
isoDateStr = isoDateStr.substring(0, isoDateStr.indexOf('T'));
这将为您提供标准的 UTC 日期格式yyyy-mm-dd。如果您需要将日期专门格式化为dd-mm-yyyy那么您可以获取该结果并切换值,即
isoDateStr = isoDateStr.split('-').reverse().join('-');
JavaScript 使用毫秒纪元,因此您需要将您的数字乘以 1000。
var t = 1367214805;
var d = new Date(t * 1000);
然后有一些.getUTCxxx
方法可以获取您想要的字段,然后您只需零填充并连接即可获得所需的字符串。
function epochToDate(t) {
function pad2(n) {
return n > 9 ? n : '0' + n;
}
var d = new Date(t * 1000);
var year = d.getUTCFullYear();
var month = d.getUTCMonth() + 1; // months start at zero
var day = d.getUTCDate();
return pad2(day) + '-' + pad2(month) + '-' + year;
}
看看Moments.js,你应该能够轻松地获得你想要的任何格式。
console.log(new Date());
console.log(moment().format("D-M-YY"));
console.log(moment(1367214805 * 1000).format("DD-MM-YY"));
你可以试试这个:
myDate.toISOString().split('T')[0].split('-').reverse().join('-')
为什么不使用getUTCxxx()
方法?
function formatUTC(time_UTC_in_milliseconds_since_epoch) {
/*
* author: WesternGun
*/
var time = new Date(time_UTC_in_milliseconds_since_epoch);
var formatted = time.getUTCFullYear() + "-"
+ (time.getUTCMonth() + 1).toString() + "-"
+ time.getUTCDate() + " "
+ time.getUTCHours() + ":"
+ time.getUTCMinutes() + ":"
+ time.getUTCSeconds();
return formatted;
}
记得给月份加1,因为返回值的范围getUTCMonth()
是0~11
。
根据您的意见,我们有:
formatUTC(1367214805 * 1000); // return "2013-4-29 5:53:25"
要将数字格式化为\d\d
表格,只需创建另一个函数:
function normalizeNumber(input, toAdd) {
if (parseInt(input) < 10) {
return toAdd + input;
} else {
return input;
}
}
normalizeNumber((time.getUTCMonth() + 1).toString(), "0")
并像等一样使用它。