实现一个函数,该函数接受一个Date对象 返回对应的中文日期
var date = new Date(); // 假设今天是2019年8月27日13点5分39秒
返回 => 贰零壹玖年捌月贰拾柒日壹拾叁点伍分叁拾玖秒
function formatChineseDate(date) {
// 获取年
var year = date.getFullYear();
// 获取月
var month = date.getMonth() + 1;
// 获取日
var day = date.getDate();
// 获取时
var hours = date.getHours();
// 获取分
var minutes = date.getMinutes();
// 获取秒
var seconds = date.getSeconds();
console.log("当前的日期是" + year + "年" + month + "月" + day + "日 " + hours + "时" + minutes + "分" + seconds + "秒")
// 将年 月 日 时 分 秒这些数字转换成对应的中文
// 如果有一个函数能够将数字 对照成中文 就会方便很多
function constant(number) {
// 定义对照的中文内容
// 如果是1位数 我们可以定义一个数组 或者是对象 或者是字符串
var arr = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
// 0 1 2 3 4 5 6 7 8 9
// 假设是 6 arr[6] => 陆
// 假设是两位数 我们需要转换两次 需要循环着去操作
if (number < 10) {
return arr[number];
} else {
// 先拿着十位去对照 再拿着个位去对照 再中间拼一个 "拾"
// 假设是 56
// 5 => 伍
// 6 => 陆
// => 伍 + "拾" + 陆
var ge = arr[number % 10];
if (ge === "零") {
ge = "";
}
var shi = arr[Math.floor(number / 10)];
// 返回
return shi + "拾" + ge;
}
}
// 格式化年
// 为了下面的循环方便 我们将它转为字符串
var yearStr = "" + year;
// 定义格式化年的接受变量
var yearVariable = "";
// 因为年不需要单位 我们就利用constant 分别把每一个位数传递进去 最后拼接
for (var i = 0; i < yearStr.length; i++) {
yearVariable += constant(yearStr[i])
}
// 格式化月
var monthStr = constant(month);
// 格式化日
var dayStr = constant(day);
// 格式化时
var hoursStr = constant(hours);
// 格式化分
var minutesStr = constant(minutes);
// 格式化秒
var secondsStr = constant(seconds);
// console.log("当前的日期是" + yearVariable + "年" + monthStr + "月" + dayStr + "日 " + hoursStr + "时" + minutesStr + "分" + secondsStr + "秒")
return yearVariable + "年" + monthStr + "月" + dayStr + "日 " + hoursStr + "时" + minutesStr + "分" + secondsStr + "秒";
}