时间转换:toLocaleDateString()的坑

简介: 时间转换:toLocaleDateString()的坑

今天说一个关于toLocaleDateString()的坑。

安卓手机picker 时间选择 默认时间显示英文


toLocaleDateString() 方法可根据本地时间把 Date 对象的日期部分转换为字符串,并返回结果。


但是这个方法有毒,在不同浏览器返回的格式是不一样的。


我这里是用来做了一个小程序里面的时间处理。

我将一个日期对象转化成这种时间格式yyyy-mm-dd之后,在微信开发者工具里面显示都是正常的,是这个样子的。

真机的格式:

在我的安卓手机上测试的时候,会发现这个问题,时间格式是显示英文了。

解决办法:

如果想获取yyyyMMdd格式的字符串:

方法:

var str= new Date();
var str2= str.getFullYear() + "-"
 + (str.getMonth() + 1) + "-" + str.getDate();

示例代码:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
    <head>
        <title></title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <!-- <link rel="stylesheet" href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> -->
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
        <!-- <script src="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> -->
        <style>
        </style>
    </head>
    <body>
    </body>
    <script>
        var  date= new Date();
        var taskStartTime=  date.getFullYear() + "-"+ (date.getMonth() + 1) + "-" +  date.getDate();
        console.log(taskStartTime)
    </script>
</html>

打印



注意:

有的时候,需要区别,2020-7-24和,2020-07-24,当月份或者日为个位数的时候,需要在前面加上一个0字,这个时候,就需要进行一定的判断了。

示例代码:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
    <head>
        <title></title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <!-- <link rel="stylesheet" href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> -->
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
        <!-- <script src="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> -->
        <style>
        </style>
    </head>
    <body>
    </body>
    <script>
        var date = new Date();
        if (date.getMonth() < 9) {
            taskStartTime = date.getFullYear() + "-0" + (date.getMonth() + 1) + "-"
        } else {
            taskStartTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-"
        }
        if (date.getDate() < 10) {
            taskStartTime += "0" + date.getDate()
        } else {
            taskStartTime += date.getDate()
        }
        console.log(taskStartTime)
    </script>
</html>

当月份或者日为个位数的时候,会在日期前面添加一个0。


相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
6月前
年月日
年月日
48 0
|
11月前
|
C#
C# 对于“日期时间(DateTime)“的处理 时间差计算
C# 对于“日期时间(DateTime)“的处理 时间差计算
|
JavaScript 前端开发
拿到指定时间对象
拿到指定时间对象
103 0
[VC++]用CTime类得到当前日期、时间、星期,格式化(详细讲解)
用CTime类得到当前日期、时间、星期,格式化(详细讲解)2009/05/12 09:48 A.M.① 定义一个CTime类对象 CTime time; ② 得到当前时间 time = CTime::GetCurrentTime(); ③ GetYear( ),GetMonth( ), GetD...
1597 0