求助关于时间JS出现NaN错误

vartoday=newDate();varhours=today.getHours();varminutes=today.getMinutes();varseconds... var today=new Date();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var timeValue = " " + ((hours >12) ? "下午 "+hours -12 : "上午 "+hours); timeValue += ((minutes < 10) ? ":0" : ":") + minutes+" ";
调用时分钟没问题,但是小时出现NaN,请问需要怎么修改?
展开
 我来答
百度网友177257b46
2013-08-20 · TA获得超过803个赞
知道小有建树答主
回答量:427
采纳率:100%
帮助的人:334万
展开全部
"下午 "+hours -12
加入时20:35

问题出在这里,由于有字符串,这里加号功能是字符串连接
结果是"下午8"-12
由于减号不支持字符串操作,只能尝试将"下午8"转换为数字,结果发现无法转换
因此就产生了NaN 意思是 not a number 。即 非数字。
因此这个表达式改为:"下午" + (hours - 12)即可
另外 写程序不需要莫名的一些括弧
timeValue = hours >12 ? "下午 " + (hours -12) : "上午 "+hours;

这样写完全可以达到目的
也能让表达式看起来更清晰
TableDI
2024-07-18 广告
VLOOKUP 是 Excel 中一个非常实用的函数,它允许用户在一个区域或表格的首列中查找特定值,并返回同一行中指定列中的值。当进行跨表匹配时,你可以使用 VLOOKUP 函数将两个不同表格中的数据关联起来。通过指定查找值、表格数组、列号... 点击进入详情页
本回答由TableDI提供
左路传中
2013-08-20 · TA获得超过519个赞
知道小有建树答主
回答量:760
采纳率:0%
帮助的人:526万
展开全部
"下午 "+hours -12

你把JS解释器弄懵了,把后面括起来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoapk
推荐于2018-04-24 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1581万
展开全部
// hours - 12 用括号括起来

var timeValue = " " + ((hours >12) ? "下午 "+ (hours -12) : "上午 "+hours);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尧__不可及
2013-08-20 · 超过24用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:45.1万
展开全部
var timeValue = ((hours >12) ? "下午 ": "上午 ");
timeValue+=hours%12;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式