在javascript中将DateTimeOffset字符串值转换为日期对象
我正在使用ASP.NET,我有以下字符串:在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
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);