真機顯示時間與獲取的時間相差8小時解決方案


之前有講過ios系統的時間顯示不支持‘-’所以轉換成‘/’但是不知道是不是系統不兼容的問題,只要時間做了格式轉換就會出現相差8小時的問題,如果只是把‘-’換成‘/’就沒有這種問題,這里有兩種解決方案

一:后端統一處理時間格式,這里有個前提就是前端都需要這種格式的時間

在startup.cs中進行配置:

services.AddMvc(options =>
{
//默認啟用CSRF跨站請求偽造攻擊保護機制
options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
}).AddJsonOptions(options =>
{
//不使用駝峰樣式的key
//options.SerializerSettings.ContractResolver = new DefaultContractResolver();
//設置時間格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
//使用本地時間
options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local;
});

 

二:前端進行字符串截取得到想要的格式

 

 

 

這里有個建議就是最好后端能統一返回時間戳給前端,這樣會出錯率會比較低

 

時間戳轉換:

// 格式化時間 

function formatTime(timeStamp) { 

    // 將/[0-9]/位的數字編成/0[0-9]/ 

    function getTwo(s) { 

        if (parseInt(s) < 10) { 

            return "0" + s; 

        } else { 

            return "" + s; 

        } 

    } 

 

    if (timeStamp.length < 13) { 

        timeStamp += "000"; 

    } 

    var d = new Date(parseInt(timeStamp)); 

 

    var year = d.getFullYear(); 

    var month = getTwo(d.getMonth() + 1); 

    var date = getTwo(d.getDate()); 

    var hour = getTwo(d.getHours()); 

    var minute = getTwo(d.getMinutes()); 

    var second = getTwo(d.getSeconds()); 

 

    return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second; 

}

時間戳在線轉化: https://tool.lu/timestamp/

 

 

 

最后推薦一個好用的網站: https://tool.lu/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM