今天说一个关于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。