javascript - Vue,以“xhxxm”格式添加/增加时间
问题描述
我正在尝试制作一个简单的界面,用户可以使用列表中的许多可用选项来增加时间。我可以将 vue 变量设置为他们单击的时间(即,如果他们单击“+30m”,则该变量反映 30
但是,我想以 XhXXm 的格式显示变量(所以 2 小时 30 分钟将是 2h30m)。诀窍是,如果他们选择 15m,然后是 30m,然后是 1h,则显示应为 1h45m。
我将如何更改它以实际正确迭代并添加选择?我应该将它全部添加到几分钟内,然后尝试为 UI 分解它吗?
<ul class="time-list">
<li style="margin-right:2px;"><a href="#" @click="addTime(15)">+15m</a></li><span>|</span>
<li style="margin-right:2px;"><a href="#" @click="addTime(30)">+30m</a></li><span>|</span>
<li style="margin-right:2px;"><a href="#" @click="addTime(45)">+45m</a></li><span>|</span>
<li style="margin-right:2px;"><a href="#" @click="addTime(60)">+1h</a></li><span>|</span>
<li><a href="#">---</a></li>
</ul>
export default {
data () {
return {
timeSpent: '0m',
}
},
methods: {
addTime(time){
this.timeSpent = time;
},
}
}
解决方案
从 0 开始的 timeSpent
return {
timeSpent: 0,
}
设置您的功能以将新值添加到您的计数器
addTime(time){
this.timeSpent += time;
},
并格式化计算属性
computed: {
timeToDisplay(){
return `${Math.floor(this.timeSpent/60)}h${this.timeSpent % 60}m`;
},
}
终于要展示了
{{ timeToDisplay }}
推荐阅读
- postgresql - dblink 在同一个数据库上执行时是否使用不同的会话?
- node.js - 请求头 {Content-Type : application/json, Content-Length: 188 ,} 抛出错误 SyntaxError: Unexpected end of JSON input
- android - 断言失败:使用 Contact() 类时,布尔表达式在 Flutter 中不得为空
- python - 日志被添加到默认和客户文件附加程序中
- nginx - 强制 Heroku 上的应用程序使用 https
- git - 重新规范化 git 历史
- python - 扫描文件以建立索引不会停止并且 PyCharm 冻结
- html - (Bootstrap 4+) - 具有多个元素的列:在同一行上对齐元素
- javascript - 根据数值反应渲染组件的数量
- c++ - 拥有一个具有写入功能的类,如何将其传递给接受 std::ostream& 的函数