Web开发-全汉字时钟web前端开发

Web开发-全汉字时钟web前端开发

清晨说ぺ晚安 发布于 2017-09-12 字数 312 浏览 1064 回复 2

设计一款全汉字时钟。例如,假设系统当前时间是2012.04.01 12:34:56,希望显示成为“二零一二年四月一日十二点三十四分五十六秒”,然后下一秒显示为:“二零一二年月一日十二点三十四分五十七秒”。要求考虑各种情况,且时间尽量精确。请给出设计思路或代码。(这是一道实习生笔试题)希望会的哥哥帮帮我!

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2017-10-29 2 楼

效果类似:
二零一二年四月七日 十点五十八分五十秒

html:

<div id='test'></div>

javascript:

 <script type="text/javascript">

var num = Array("零","一","二","三","四","五","六","七","八","九","十");
setInterval(function(){
var date = new Date();
var year = date.getFullYear().toString().replace(/d/g,function($1){return num[$1]})+'年';
var month = date.getMonth();
month = month > 10 ? '十' + num[month.toString().substr(1)] + '月': num[month]+'月';
var day = dateFormat(date.getDate(),'日');
var hours = dateFormat(date.getHours(),'点');
var minutes = dateFormat(date.getMinutes(),'分');
var seconds = dateFormat(date.getSeconds(),'秒');
document.getElementById('test').innerHTML = year + month + day + ' ' + hours + minutes + seconds;
},1000);

function dateFormat(date,unit) {

if(date >= 20) {
if(date.toString().substr(1) == "0") {
date = num[date.toString().substr(0,1)] + '十' + unit;
}else {
date = date.toString().replace(/(?=d{1}$)/g,function($1){return '十'}).toString().replace(/d/g,function($1){return num[$1]}) + unit;
}
}else if(date > 10){
date = '十' + num[date.toString().substr(1)] + unit;
}else {
date = num[date]+ unit;
}
return date;
}
</script>

浮生未歇 2017-09-23 1 楼

自己写了一个,算不上最精简的,基本上可以用,当出现整点的时候,可以在外面判断一下

function nc (str,format) {
var ntoc = ['零','一','二','三','四','五','六','七','八','九'];
if(format == 's') {
return str.toString().replace(/(d)/g,function(i){return ntoc[i]});
} else {
var f = parseInt(Math.floor(str/10));
var s = parseInt(str%10);
if(f == 0) {
return str.toString().replace(/(d)/g,function(i){return ntoc[i]});
} else if(f == 1){
if(s) {
return '十' + ntoc[f] + ntoc[s];
} else {
return '十' + ntoc[f] ;
}
} else {
if(s) {
return ntoc[f] + '十' + ntoc[s];
} else {
return ntoc[f] + '十' ;
}
}
}
}
var date = new Date();
var cn = nc(date.getFullYear(),'s')+ '年' + nc(date.getMonth() + 1,'m') + '月' + nc(date.getDate(),'m') + '日' + nc(date.getHours(),'m') + '点' + nc(date.getMinutes(),'m') + '分' + nc(date.getSeconds(),'m') + '秒' ;
alert(cn);