从Firestore时间戳显示日期(不是时间)

时间:2019-04-17 11:15:50

标签: javascript html5

我要从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日”,但如果当天也可以)

4 个答案:

答案 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的在线编译器进行转换。

链接:https://babeljs.io/repl

答案 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());

请参阅完整的文档:

toDateString()

toDate()

答案 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>