我要从Firestore数据库中获取一个时间戳,我只想向用户显示日期。原始时间戳为
Timestamp(seconds=1555477200, nanoseconds=0)
我尝试了一些变体来获取日期,但是它们都具有相同的输出-
到期日:2019年4月17日星期三06:10:21 GMT-0500(中部夏令时)
<p>Due: ${Date(dueDate)}<br>
<p>Due: <time>${Date(dueDate)}</time><br>
<p>Due: <time type="date">${Date(dueDate)}</time><br>
如何切断时间戳的时间部分? (理想情况下,我想要“ 2019年4月17日”,但如果当天也可以)
答案 0 :(得分:2)
如果您使用特定的日期格式,则可以
function getDate (timestamp=Date.now()) {
const date = new Date(timestamp);
let dd = date.getDate();
let mm = date.getMonth()+1; //January is 0!
const yyyy = date.getFullYear();
if(dd<10) {
dd = '0'+dd
}
if(mm<10) {
mm = '0'+mm
}
// Use any date format you like, I have used YYYY-MM-DD
return `${yyyy}-${mm}-${dd}`;
}
getDate(1555477200000);
// -> 2019-04-17
或者,您也可以执行以下操作:
const time = new Date(1555477200000);
// -> Wed Apr 17 2019 10:30:00 GMT+0530 (India Standard Time)
const date = time.toDateString();
// -> Wed Apr 17 2019
P.S:我在这里使用过ES6。如果您正在使用ES5,请使用babel的在线编译器进行转换。
答案 1 :(得分:1)
您可以像这样使用Date.toLocaleString():
new Date(date).toLocaleString('en-EN', { year: 'numeric', month: 'long', day: 'numeric' });
const timestamp = 1555477200000;
console.log(
new Date(timestamp).toLocaleString('en-EN', { year: 'numeric', month: 'long', day: 'numeric' })
);
答案 2 :(得分:0)
你可以
var time= timeStampFromFirestore.toDate();
console.log(time);
console.log(time.toDateString());
请参阅完整的文档:
答案 3 :(得分:0)
只需使用moment.js并使用所需的格式
date = moment();
console.log(date.format("MMMM D, YYYY"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.js"></script>