這是我在StackOverflow的第一個問題。我試圖將一個數字格式化為日期。我從sql中得到了像'20210728'的日期資料。
所以我想在網上顯示這個日期,如'2021-07-28'。 我已經做了一些代碼來將數字格式化為日期格式,但我想知道是否有其他方法來更好地格式化資料。
以下是我的代碼:

我期待著你的答復。謝謝。
uj5u.com熱心網友回復:
如果格式永遠是yyyyMMdd,那么你可以使用正則運算式來添加破折號,如果你想要的只是將日期顯示為文本。請看這個正則運算式的例子來解釋它是如何作業的。https://regex101.com/r/KGv2iy/1
如果你需要一個實際的JS日期物件,那么你可以直接在new Date()呼叫中使用該字串。
使用Intl.DateTimeFormat方法允許您對實際的Date物件進行各種格式化。請看。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
最后,但肯定不是最不重要的,是 moment.js 庫 https://momentjs.com/,它使格式化您的日期物件變得非常容易
。 。const dateNumber = 20210728;
const regex = /(d{4})(d{2})(d{2})/。
const str = dateNumber.toString();
const subst = `$1-$2-$3`;
const dateString = str.replace(regex, subst)。
const newDate = new Date(dateString)。
const momentDate = moment(dateNumber. toString().format(`YY-MM-DD`)。
console. log({dateString: dateString, newDate: newDate, momentDate: momentDate}) /code>
<script src="https://cdnjs. cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js"></script>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
我建議使用ExtJs的內部方法:
Ext.Date.format(Ext. Date.parse('20210607','Ymd'),'Y-m-d')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/315171.html
標籤:
