看完就懂的编辑页面如何巧妙处理时间

简介: 看完就懂的编辑页面如何巧妙处理时间
需求分析

分析:

我们通常会遇到这种情况,当我们制作一个表单页面的时候,通常会有添加和编辑的情况,我们在提交的时候还需要将时间的格式转换为字符串格式进行传参。

在这里我们使用的是 iview 中的 DatePicker type格式为datetime可选择日期和时间


添加页面

在添加页面中相对简单很多 因为插件具有 @on-change 时间 时间的参数就是当前选中的时间字符串格式的 所以我们只需要在这个事件中赋值即可

首先我们进行了双向绑定 然后绑定事件

在事件中我们只需要将time参数传递给对应变量即可 下图查看效果

当我们选择对应时间的时候输出的time为字符串格式的时间 所以我们的赋值也搞定了

下面来看一个麻烦的编辑页面


编辑页面

上面的添加页面很简单 我们只需要通过 change 事件进行赋值即可 但是在编辑页面中 我们跳转到编辑页面然后获取详情 并绑定到时间插件上面 这时候我们不对时间进行选择 也就不触发change事件了 所以当我们提交的时候看一下输出

通过获取详情已经复制给了日期插件 并没有触发change事件 我们点击确定按钮输出的是实践对象 但是如果用户进来更改了时间 进而触发change事件后 时间格式又成为了字符串 所以我们再次需要判断是否为字符串类型的格式在选择性的进行格式化


推荐以下

export function parseTime(time, cFormat) {
   if (arguments.length === 0) {
     return null
   }
   const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
   let date
   if (typeof time === 'object') {
     date = time
   } else {
     if (('' + time).length === 10) time = parseInt(time) * 1000
     date = new Date(time)
   }
   const formatObj = {
     y: date.getFullYear(),
     m: date.getMonth() + 1,
     d: date.getDate(),
     h: date.getHours(),
     i: date.getMinutes(),
     s: date.getSeconds(),
     a: date.getDay()
   }
   const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
     let value = formatObj[key]
     if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
     if (result.length > 0 && value < 10) {
       value = '0' + value
     }
     return value || 0
   })
   return time_str
 }
  • 首先我们引入到使用组件中
  • 如果要转化的值不为空则进行格式化

    在这里我们不用考虑当前时间的格式 当前用户有没有选择时间 因为在上面的parseTime方法中我们进行了判断

    这样就可以了


相关文章
|
JavaScript
【自然框架】添加数据的思路和流程 —— 流水线式
        自然框架里面,添加数据的思路、流程:     1、 根据元数据绘制表单。  2、 用户看到表单后就可以录入数据了。  3、 在前台使用正则来做验证。  4、 通过后提交给后台。
939 0
|
前端开发
前端工作总结244-修改其他页面的时间逻辑
前端工作总结244-修改其他页面的时间逻辑
102 0
|
Android开发 Java 数据格式
界面无小事(七):使用代码动态增删布局
界面无小事(一):RecyclerView+CardView了解一下界面无小事(二):让RecyclerView展示更多不同视图界面无小事(三):用RecyclerView + Toolbar做个文件选择器界面无小事(四):来写个滚动选择器吧!界面无小...
1355 0
|
数据处理 Windows
数据处理第一节:选取列的基本到高级方法
博客原文:https://suzan.rbind.io/2018/01/dplyr-tutorial-1/ 作者:Suzan Baert 注意:所有代码都将作为管道的一部分呈现,即使它们中的任何一个都不是完整的管道。
1023 0
|
存储 小程序 算法
【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】
【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】
121 0
|
前端开发 JavaScript
如何做一个按钮二个事件
DOM_text01 body,span,div,td{font-size:12px;line-height:1.5em;color:#849BCA;} #bodyL{ float:left; width:84px; margin-right:2px; } a.
680 0
|
存储 算法 程序员
嵌入式C实战项目开发技巧:如果对一个有规律的数组表进行位移操作
在嵌入式项目开发中,LED灯的操作是一定要会的,也是基础中的基础,比如用51单片机写个跑马灯,这不简单嘛,定义一个数组把那8个跑马灯存起来,然后搞个for循环不就可以了嘛,但是,实际工作开发中写一个跑马灯可不像学校和书本上那么简单噢,往往最简单的东西,有可能也是最复杂的。
1065 0
|
编解码 数据可视化 Java
3D模型拆分与合并展示,IVX真的可以简单实现
iVX 平台的优势和特点,包括逻辑完备性、操作流畅性、面向对象设计方法、可独立作为编程语言等方面的优势,下面来详细的介绍介绍。
143 0
|
自然语言处理 JavaScript
如何实现一个能精确同步滚动的Markdown编辑器
如何实现一个能精确同步滚动的Markdown编辑器
322 0
如何实现一个能精确同步滚动的Markdown编辑器

热门文章

最新文章