我有一個angular專案,將在國際上使用。在后臺,所有的日期都是作為時間戳管理的(Date類),而在angular中,我將它們作為Dates接收。 問題是,我需要將這些日期轉換為 "yyyy-MM-dd HH:mm",并將其與客戶使用的小時和分鐘的時區聯系起來,因此我應該需要讀取瀏覽器的時區,然后轉換日期,問題是我只能獲得瀏覽器的時區偏移,我不知道如何用具體的時區偏移來轉換日期,或者如何做到這一點。
this. statsServ.getLastDateUpdate().subscribe(
(lastDate 。Date) => {
console.log(lastDate)。
const timeZoneOffset = new Date().getTimezoneOffset() 。
console.log(`timezone offset:` timeZoneOffset)。
let dateString :string = formatDate(lastDate,"dd-MM-yyy HH:mm"/span>)。
console.log(dateString)。
}
)
}
lastDate是作為Date類的接收日期。 我需要將日期格式化為 dd-MM-yyyy HH:mm 并根據瀏覽器客戶端的時區。
謝謝你的幫助。
uj5u.com熱心網友回復:
在沒有看到一些代碼的情況下,很難對你的問題給出一個完美的解釋,但是如果我想的沒錯的話,那就是你從后臺接收了一個UTC的日期格式,并且希望用本地時區來表示它,如果是這樣的話,那么只要把日期傳遞給Date類的構造器就可以了
const event = new Date('05 October 2011 14:48 UTC')。
console.log(event.toString())。
//預期輸出。Wed Oct 05 2011 16:48:00 GMT 0200 (CEST)
//(注意:你的時區可能不同)。
console.log(event.toISOString()。
//預期輸出。2011-10-05T14:48:00.000Z
編輯:
正如我之前提到的,在Date類constructor中插入日期將為你帶來好處(它將采用主機的時區),因此你的代碼將是這樣的:
this. statsServ.getLastDateUpdate().subscribe(
(utcDate: Date) => {
console.log(utcDate)。
const date = new Date(utcDate)。
console.log(date)。
}
)
}
并且強烈建議在你的組件中使用DatePipe,它將使你的代碼看起來更干凈。
DatePipe在.component.html中的用法:
<h1>{{date | date: 'short'}}</h1>
希望這能起到作用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/310903.html
標籤:
