Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将DateTimeOffset字符串值转换为日期对象_Javascript - Fatal编程技术网

在javascript中将DateTimeOffset字符串值转换为日期对象

在javascript中将DateTimeOffset字符串值转换为日期对象,javascript,Javascript,我正在使用ASP.NET,我有以下字符串: 2018-12-04T13:53:42.6785734+07:00 我想将字符串转换为日期对象并格式化输出字符串 我的目标:2018年12月4日13:53:42 我尝试过这种方法,但它记录了错误的结果: var dt=新日期('2018-12-04T13:53:42.6785734+07:00'); var day=dt.getDay(), month=dt.getMonth(), 年份=dt.getFullYear(), 小时数=dt.getHo

我正在使用ASP.NET,我有以下字符串:

2018-12-04T13:53:42.6785734+07:00
我想将字符串转换为日期对象并格式化输出字符串

我的目标:
2018年12月4日13:53:42

我尝试过这种方法,但它记录了错误的结果:

var dt=新日期('2018-12-04T13:53:42.6785734+07:00');
var day=dt.getDay(),
month=dt.getMonth(),
年份=dt.getFullYear(),
小时数=dt.getHours(),
分钟数=dt.getMinutes(),
秒=dt.getSeconds();
// 2/11/2018 13:53:42    

日志(日+'/'+月+'/'+年+'+小时+':'+分钟+':'+秒)直接操作原始字符串而不转换为这样的日期对象是否可以接受?我真的可以说出测试用例是什么,但是假设小时数是相同的长度(04,12),我认为下面的代码应该可以工作

let dt = '2018-12-04T13:53:42.6785734+07:00';
let  dArr = dt.substr(0,10).split('-');
let year = dArr[0];
let month = dArr[1];
let day = dArr[2];
let time = dt.substr(11,8);

let str = month+'/'+day+'/'+year+' '+time;

console.log(str)
var dt=新日期('2018-12-04T13:53:42.6785734+07:00');
var day=dt.getDate(),
month=dt.getMonth(),
年份=dt.getFullYear(),
小时数=dt.getHours(),
分钟数=dt.getMinutes(),
秒=dt.getSeconds();
// 2/11/2018 13:53:42    

console.log(日+'/'+(月+1)+'/'+年+'+小时+':'+分钟+':'+秒)以下是从0开始的数组
getDay()
将工作日作为数字(0-6)获取
getDate()
以数字形式获取日期(1-31)
getMonth()
以数字形式获取月份(0-11)

var dt=新日期(“2018-12-04T13:53:42.6785734+07:00”);
var day=returnDay(),
月份=返回月份(),
年份=dt.getFullYear(),
小时数=dt.getHours(),
分钟数=dt.getMinutes(),
秒=dt.getSeconds(),
函数returnDay(){
变量d=(dt.getDate()<10)?“0”+(dt.getDate()):dt.getDate();
返回d;
}
函数returnMonth(){
var m=(dt.getMonth()+1<10)?“0”+(dt.getMonth()+1):dt.getMonth()+1;
返回m;
}
//04/12/2018 8:53:42
日志(日+'/'+月+'/'+年+'+小时+':'+分钟+':'+秒);
有关更多信息,请参阅:

切分它,我在示例中使用了jQuery,因为我在另一个项目中使用了jQuery,而这段代码只是组件的一部分,但应该没什么关系

var getTimeOnly = new Date().getTime();
var fullDate = new Date($.now()).toString();
var datePartialTime = fullDate.slice(16, 25);
var datePartialDate = fullDate.slice(0, 16);



$('a').html( "on " + datePartialDate + 'at ' + datePartialTime);
链接到钢笔


getDate()
不是
getDay()
。另外,在JS月中,从
0
开始。因此,您必须使用
getMonth()+1
它将正确返回日期,但当前时区不是接收到的字符串的时区。例如,如果当前时区为+8:00,则时区+7:00将转换为该时区。
var getTimeOnly = new Date().getTime();
var fullDate = new Date($.now()).toString();
var datePartialTime = fullDate.slice(16, 25);
var datePartialDate = fullDate.slice(0, 16);



$('a').html( "on " + datePartialDate + 'at ' + datePartialTime);