конвертировать временную метку пожарного магазина в другой формат - PullRequest
0 голосов
/ 04 февраля 2020

переменная отметки времени хранится в пожарном депо, а затем извлекается в формате секунд и наносекунд, как преобразовать отметку времени в формат, например 2018-09-19T00: 00: 00

let Ref=firebase.firestore().collection("Recruiter").doc(u.uid).collection("Jobs")
    Ref.orderBy("timestamp", "desc").onSnapshot(function(snapshot){
      $.each(snapshot.docChanges(), function(){
        var change= this
        if(change.type==="added"){
           var ab= new Date(change.doc.data().timestamp) 
           console.log(ab)
          thisIns.RecruiterChart.chartOptions.xaxis.categories.push(
            ab
            ) 

           console.log( thisIns.RecruiterChart.chartOptions.xaxis.categories)
        }

      })
    })

переменная ab показывает "недопустимую дату" на консоли

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Вы должны использовать toDate() метод Firestore Timestamp:

Преобразовать метку времени в JavaScript объект Date. Это преобразование приводит к потере точности, поскольку объекты Date поддерживают только точность с точностью до миллисекунды.

Возвращает Date

JavaScript Объект даты, представляющий тот же момент времени, что и отметка времени, с точностью до миллисекунды.

Итак, вы должны сделать следующее:

var timestampDate = change.doc.data().timestamp.toDate(); 
console.log(timestampDate);

Затем вам нужно отформатировать эту дату по своему усмотрению. Самый простой - использовать выделенную библиотеку, например moment.js, следующим образом:

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

// ...

<script>

   // ...

    var timestampDate = change.doc.data().timestamp.toDate(); 
    var m = moment(timestampDate );
    var mFormatted = m.format();    // "2014-09-08T08:02:17-05:00" (ISO 8601, no fractional seconds) 
    console.log(mFormatted );

    // ...

</script>

Другие возможности форматирования даты с moment.js можно найти здесь здесь .

0 голосов
/ 04 февраля 2020

Мне кажется, я знаю, что происходит.

Ваша переменная ab должна быть в строковом формате, верно?

Попробуйте сначала проанализировать ее как Number .. и посмотрите, что произойдет.

Попробуйте зарегистрировать что-то вроде:

var ab= new Date(Number(change.doc.data().timestamp))
console.log(ab)
thisIns.RecruiterChart.chartOptions.xaxis.categories.push(
  ab
) 

console.log( thisIns.RecruiterChart.chartOptions.xaxis.categories)

ИЛИ

var ab= new Date(parseInt(change.doc.data().timestamp, 10))
console.log(ab)
thisIns.RecruiterChart.chartOptions.xaxis.categories.push(
  ab
) 
console.log( thisIns.RecruiterChart.chartOptions.xaxis.categories)

Приветствия,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...