时间转换: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。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值