隨着互聯網的飛速發展,客戶端的JS開發變得越來越重要,JS格式化在項目開發過程中也顯得越來越重要,它可以優化項目代碼邏輯、提升開發效率,在項目開發中的重要性不可忽視。
一、JS格式化國際時間
使用JS格式化時間是前端開發過程中常用的功能之一,格式化國際時間的話需要使用到JS中的Date函數。最常見的格式化方式是將時間轉為字符串,下面是一個樣例代碼:
let date = new Date(); console.log(date.toUTCString()); // 輸出結果:Thu, 03 Sep 2020 09:07:17 GMT
toUTCString()函數將時間轉為國際標準時間格式,輸出結果為當前的格林威治標準時間。
還有很多其他的日期時間格式,如toLocaleDateString()、toLocaleTimeString()等等。這些函數可以根據你的需求來選擇使用。
二、JS格式化時間格式
在項目開發過程中可能會需要格式化不同的時間格式,比如將時間轉換為“年-月-日 時:分:秒”的形式。使用JS的Date函數便可輕鬆實現,下面是樣例代碼:
function addZero(n) {
return n < 10 ? '0' + n : '' + n; //小於10的數前面加'0',否則返回原數
}
function formatTime(time) {
const date = new Date(time);
const year = date.getFullYear();
const month = addZero(date.getMonth() + 1);
const day = addZero(date.getDate());
const hour = addZero(date.getHours());
const minute = addZero(date.getMinutes());
const second = addZero(date.getSeconds());
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}
console.log(formatTime(1599114256000));
// 輸出結果:2020-09-03 14:50:56
以上代碼的思路是,將時間字符串的年月日、時分秒分別提取出來,並在進行格式化之前將小於10的數前面補’0’。
三、JS格式化XML
XML(可擴展標記語言)是用來描述數據的一種標記語言,而將XML格式化可以使其更便於閱讀和解析。使用JS格式化XML可以使用XMLSerializer對象,樣例代碼如下:
const xmlString = `JavaScript John Smith`; const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); const serializer = new XMLSerializer(); console.log(serializer.serializeToString(xmlDoc)); // 輸出結果:JavaScript John Smith
以上代碼的思路是:將需要格式化的XML字符串使用DOMParser對象將其解析為XML DOM,再使用XMLSerializer對象將XML DOM轉成字符串形式的XML,並輸出到控制台。
四、JS格式化JSON
像XML一樣,格式化JSON字符串可以使其更容易閱讀和解析。JS中也可以使用JSON對象來進行格式化,樣例代碼如下:
let jsonStr = '{"name": "小明", "age":18, "sex":"男", "hobby": ["game", "sport", "reading"]}';
let jsonObj = JSON.parse(jsonStr);
let prettyJson = JSON.stringify(jsonObj, null, 4);
console.log(prettyJson);
// 輸出結果為格式化後的JSON字符串
以上代碼的思路是:首先將需要格式化的json字符串轉換為JSON對象,再使用JSON.stringify()函數將JSON字符串轉換為格式化後的JSON字符串輸出到控制台。
五、JS格式化日期
在JS中,將日期格式化為“年-月-日”、“月/日/年”等格式很常見。下面是一個格式化為“年-月-日”的演示代碼:
function formatDate(date) {
const y = date.getFullYear();
const m = date.getMonth() + 1;
const d = date.getDate();
return `${y}-${m}-${d}`;
}
console.log(formatDate(new Date()));
// 輸出結果:2020-09-03
以上代碼的思路是:首先將日期中的年月日提取出來,然後拼接成需要格式化的形式。
六、JS格式化時間戳
在JS中,將時間戳格式化為“年-月-日”、“月/日/年”等格式也是很常見的操作。下面是一個格式化為“年-月-日”的演示代碼:
function formatTimeStamp(timeStamp) {
const date = new Date(timeStamp);
const y = date.getFullYear();
const m = date.getMonth() + 1;
const d = date.getDate();
return `${y}-${m}-${d}`;
}
console.log(formatTimeStamp(1599114256000));
// 輸出結果:2020-09-03
以上代碼的思路與格式化日期的代碼類似,只需要將傳入的時間戳用Date對象轉換成日期即可。
七、JS格式化工具
在JS開發中,我們可能需要使用一些工具來輔助我們進行格式化,比如Lodash、Moment.js等。下面我們來演示一下如何使用Moment.js來格式化時間:
let time = '2020-09-03 15:11:36';
let momentTime = moment(time).format('YYYY-MM-D h:mm:ss');
console.log(momentTime);
// 輸出結果:2020-09-3 3:11:36
以上代碼的思路是:首先使用moment()函數將時間字符串轉化為Moment對象,然後使用format()函數將其格式化為需要的格式,最後輸出到控制台。
八、JS格式化金額
在處理金錢交易時,我們需要對金額進行格式化,比如添加千位分隔符,保留兩位小數等等。下面是一個將金額格式化為千位分隔符+兩位小數的演示代碼:
function formatMoney(money) {
let left = money.split('.')[0]; // 獲取整數部分
let right = money.split('.')[1]; // 獲取小數部分
left = left.split('').reverse().reduce((prev, next, index) => { // 讓整數部分每3位添加一個逗號
return ((index % 3) ? next : (next + ',')) + prev
});
return left + '.' + right;
}
console.log(formatMoney('1234567890.999'));
// 輸出結果:1,234,567,890.99
以上代碼的思路是:首先將金額分割為整數部分和小數部分,然後對整數部分每3位數字添加一個逗號,並將整數部分和小數部分重新拼接成需要格式化的形式。
九、JS格式化金額還原
在有些情況下,我們需要對格式化後的金額進行還原,去掉千位分隔符等等。下面是一個將格式化後的金額還原為數字形式的演示代碼:
function unFormatMoney(money) {
return parseFloat(money.replace(/\,/g, ''));
}
console.log(unFormatMoney('1,234,567,890.99'));
// 輸出結果:1234567890.99
以上代碼的思路是:使用replace()函數將金額中的逗號去掉,之後再使用parseFloat()函數將其轉換為數字形式。
以上便是JS格式化的各個方面的介紹,不同的開發需求可能需要使用到上述的不同功能,希望這些代碼能夠對你在項目開發過程中有所幫助。
原創文章,作者:QSDQP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/318187.html
微信掃一掃
支付寶掃一掃