这个特定的格式,我需要这样的输出:我怎么能做出与时刻
2017-08-11T16:11:00.000Z
我不知道这是什么格式被调用。它似乎有这样的格式,上面的一个,并且看起来像一个ATLEAST两个变化:
2017年8月11日16:11:00 + 00:00
难道是相同的事情?为什么两个变化?
现在我的问题,我与Vue2工作,特别是我使用这个组件:
http://element.eleme.io/#/en-US/component/datetime-picker
当它呈现日期用户此组件显示格式为: 2017-08- 11 18时11分00秒
幕后,如果我检查使用Vue的调试器是存储像2017-08-11T16组件值:11:00.000Z
如果该值注意到它是ACTUA lly 2个小时的偏移量,我猜这个vue组件根据用户选择的时区和用户时区在内部存储UTC时间的值?
我得到了这个组件的开发者这个答复,当我问他有什么格式的值存储内部组件:
的DateTimePicker的值是一个Date对象。您可以在将它发送到服务器之前将其格式化为任何形式。
当我初始化这个组件我做这样的:
<el-date-picker
v-model="dateTimePicker"
format="yyyy-MM-dd HH:mm"
type="datetime"
size='small'
placeholder="Pick a date">
</el-date-picker>
dateTimePicker的变量初始化是这样的:
dateTimePicker: moment.utc(this.initPublishedAtDate, 'YYYY-MM-DD HH:mm').local().format('YYYY-MM-DD HH:mm')
dateTimePicker的被从被转化为正确的本地服务器分配的日期从UTC时间存储在服务器上的时间。
现在一切正常,用户看到正确的时间加载之前创建的东西,但现在如果用户试图保存他正在工作的任何东西,客户端将发送任何在dateTimePicker和当前在新鲜的页面dateTimePicker将在yyyy -MM-dd HH:mm格式
这当然是因为用户没有使用过拾取的任何新时间,并且datepicker组件没有更新dateTimePicker变量,而我的服务器期望使用新的格式正确的新值。
现在服务器会收到错误的时间,这是X小时的偏移量,并将错误的时间保存到数据库。现在,如果用户刷新页面,时间将是错误的。每次用户保存到服务器而不触及datepicker组件时,日期将每次都抵消等等。
选项1: 我如何发送正确的时间服务器,如果用户没有使用日期选择器组件和日期选择器搞砸还没有插入正确格式化时间?
选项2: 我可以用这种格式初始化datepicker组件:2017-08-11T16:11:00.000Z,这样即使用户对它没有做任何事情,并且数据在保存时发送到服务器,服务器也会收到正确的时间。
如果我想用第二个选项来做,当我从服务器初始化dateTimePicker变量和日期时,如何生成该格式。
感谢您的建议。
什么类型的对象是'this.initPublishedAtDate'?一个字符串? –
关于Z格式,它是ISO格式:https://stackoverflow.com/a/25713676/392102 –
'2017-08-11T16:11:00.000Z'是[ISO 8601格式](https:// en。 wikipedia.org/wiki/ISO_8601)。第二种格式(不带'T')不符合ISO标准。但'+00:00'和'Z'的意思是一样的(“零点偏移”) – 2017-08-10 18:08:49