您好我想将日期时间从语言环境格式解析为英语格式(对于.NET REST API服务器)。我使用jquery datetimepicker:
jQuery(document).ready(function () {
'use strict';
jQuery.datetimepicker.setLocale('cs');
jQuery('#startDate').datetimepicker({
format: 'd.m.Y H:i',
});
});
<input ng-model="$ctrl.startDate" class="form-control" id="startDate" datetime-picker/>
在datetimepicker中我有这个日期10.01.2018 20:15
(2018年1月10日),我需要转换为2018/01/10 20:15
。此格式正确发送到.NET服务器。如何改造?
我需要帮助。我以这种格式从服务器获取日期:2018-01-10T20:15:00
我希望以这种格式在datetimepicker中显示:10.01.2018 20:15
如何转换它?
谢谢
答案 0 :(得分:1)
通过转换,您尝试转换为不适用于所有浏览器的格式。
要完成此操作,您可以按正则表达式进行拆分,在这种情况下/\:|\s|\./g
可以按任意.
,:
或空格进行拆分。然后,您可以再次建立您的初始日期。请注意,您将丢失秒数,因为初始转换中不包括秒数。
var dateStr = '2018.01.10 08:15'
var arr = dateStr.split(/\:|\s|\./g)
var finalDate = arr[0] + '-' + arr[1] + '-' + arr[2] + 'T' + arr[3] + ':' + arr[4] + ':00'
console.log(finalDate)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
答案 1 :(得分:1)
您可以编写一个简单的解析器来获取日期字符串的组件,然后创建一个new Date
并返回所需的格式。
const datestr = '10.01.2018 20:15'
// prepend zero if less than 10
const z = x => x > 9 ? x : '0' + x
// parse formatted date into server date
const parse = str => {
const [day, month, year, hour, min] = str.split(/\.|\s|\:/)
const date = new Date(year, month - 1, day, hour, min)
const y = z(date.getFullYear())
const m = z(date.getMonth() + 1)
const d = z(date.getDate())
const h = z(hour)
const mn = z(min)
return `${y}-${m}-${d}T${h}:${mn}:00`
}
console.log(
parse(datestr)
)
&#13;