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