您好,我想分析从地区格式的日期时间到英语格式(对于.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如何转换它?
谢谢
发布于 2018-01-11 03:37:43
您可以编写一个简单的解析器来获取日期字符串的组件,然后创建一个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)
)
发布于 2018-01-11 03:23:32
在转换过程中,您尝试转换的格式并不适用于所有浏览器。
为此,您可以按正则表达式拆分,在本例中为/\:|\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>
https://stackoverflow.com/questions/48194562
复制相似问题