Javascript-将区域设置datetime解析为us datetime格式

Javascript-将区域设置datetime解析为us datetime格式,javascript,jquery,Javascript,Jquery,您好,我想将datetime从区域设置格式解析为英语格式(对于.NETRESTAPI服务器)。我使用jquery datetimepicker: jQuery(document).ready(function () { 'use strict'; jQuery.datetimepicker.setLocale('cs'); jQuery('#startDate').datetimepicker({ format: 'd.m.Y H:i', });

您好,我想将datetime从区域设置格式解析为英语格式(对于.NETRESTAPI服务器)。我使用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/>
jQuery(文档).ready(函数(){
"严格使用",;
jQuery.datetimepicker.setLocale('cs');
jQuery(“#startDate”).datetimepicker({
格式:“d.m.Y H:i”,
});
});
例如,在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
如何转换


谢谢

通过转换,您试图转换的格式不适用于所有浏览器

要实现这一点,您可以使用正则表达式进行拆分,在本例中,
/\:\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(最终日期)

通过转换,您正试图从一种无法在所有浏览器中使用的格式进行转换

要实现这一点,您可以使用正则表达式进行拆分,在本例中,
/\:\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(最终日期)

您可以编写一个简单的解析器来获取日期字符串的组件,然后创建一个
新日期
并返回所需的格式

const datestr='10.01.2018 20:15'
//如果小于10,则预加零
常数z=x=>x>9?x:'0'+x
//将格式化日期解析为服务器日期
const parse=str=>{
常量[日、月、年、小时、分钟]=str.split(/\.\s\:/)
const date=新日期(年、月-1、日、小时、分钟)
常量y=z(日期.getFullYear())
常量m=z(date.getMonth()+1)
常量d=z(date.getDate())
常数h=z(小时)
常数mn=z(最小值)
返回`${y}-${m}-${d}T${h}:${mn}:00`
}
console.log(
解析(datestr)

)
您可以编写一个简单的解析器来获取日期字符串的组成部分,然后创建一个新的日期并返回所需的格式

const datestr='10.01.2018 20:15'
//如果小于10,则预加零
常数z=x=>x>9?x:'0'+x
//将格式化日期解析为服务器日期
const parse=str=>{
常量[日、月、年、小时、分钟]=str.split(/\.\s\:/)
const date=新日期(年、月-1、日、小时、分钟)
常量y=z(日期.getFullYear())
常量m=z(date.getMonth()+1)
常量d=z(date.getDate())
常数h=z(小时)
常数mn=z(最小值)
返回`${y}-${m}-${d}T${h}:${mn}:00`
}
console.log(
解析(datestr)


)
check out moment.js…它在一行代码中很容易完成类似的操作,但这会抛出错误无效日期:
moment('10.01.2018 20:15','d.m.Y H:I')。toDate()
我想它的'd.m.Y H:m'check out moment.js…它在一行代码中很容易完成类似的操作,但是这个抛出错误无效日期:
时刻('10.01.2018 20:15','d.m.Y H:i')。toDate()
我认为它的'd.m.Y H:m'不是我的情况。我有这种格式的日期:“DD.MM.YYYY hh:MM”,我需要这种“2018-01-10T20:15:00”,这种格式会在moment.js中抛出一个错误,因为它会返回到所有浏览器都不支持的内容。同样,在你的问题中,你要求两种方式都进行转换,请编辑你的问题以使其清晰。更新了我的答案很抱歉,但我的输入是这
10.01.2018 20:15
不是这
2018-01-10T20:15:00
@bluray我更新了我的答案,只显示了你想要的转换。这不是我的情况。我有这种格式的日期:“DD.MM.YYYY hh:MM”,我需要这种“2018-01-10T20:15:00”,这种格式会在moment.js中抛出一个错误,因为它会返回到所有浏览器都不支持的内容。同样,在你的问题中,你要求两种方式都要转换,请编辑你的问题以使其清晰。更新了我的答案很抱歉,但我的输入是这
10.01.2018 20:15
不是这
2018-01-10T20:15:00
@bluray我更新了我的答案,只显示了你想要的转换。这看起来不错。但我有个问题。此
新日期(年、月、日、小时、分钟)
返回错误日期:
星期六2018年2月10日20:15:00 GMT+0100
@bluray-该
参数为。@bluray我已更新了答案,以解决该月的问题。这看起来不错。但我有个问题。此
新日期(年、月、日、小时、分钟)
返回错误日期:
星期六2018年2月10日20:15:00 GMT+0100
@bluray-该
参数为。@bluray我已更新答案以解决该月的问题