【发布时间】:2016-01-14 06:36:08
【问题描述】:
如何在 javascript 中将 2016 年 1 月 12 日之类的日期字符串转换为 2016-01-12 00:00:00,
我正在查看时刻 js,但似乎没有类似的选项,并且我尝试了 js 日期函数,但返回的日期无效。
知道我在这里缺少什么吗?
【问题讨论】:
标签: javascript date momentjs
如何在 javascript 中将 2016 年 1 月 12 日之类的日期字符串转换为 2016-01-12 00:00:00,
我正在查看时刻 js,但似乎没有类似的选项,并且我尝试了 js 日期函数,但返回的日期无效。
知道我在这里缺少什么吗?
【问题讨论】:
标签: javascript date momentjs
如果你只是想重新格式化字符串,那么不要为日期烦恼:
function reformatDateString(ds) {
var months = {jan:'01',feb:'02',mar:'03',apr:'04',may:'05',jun:'06',
jul:'07',aug:'08',sep:'09',oct:'10',nov:'11',dec:'12'};
var b = ds.split('-');
return b[2] + '-' + months[b[1].toLowerCase()] + '-' + b[0] + ' 00:00:00';
}
document.write(reformatDateString('12-Jan-2016'));
但是,如果您确实需要将字符串解析为日期,请执行此操作并单独格式化字符串:
function parseDMMMY(s) {
var months = {jan:0,feb:1,mar:2,apr:3,may:4,jun:5,
jul:6,aug:7,sep:8,oct:9,nov:10,dec:11};
var b = s.split(/-/);
return new Date(b[2], months[b[1].toLowerCase()], b[0]);
}
document.write(parseDMMMY('16-Jan-2016'));
function formatDate(d) {
function z(n){return ('0'+n).slice(-2)}
return z(d.getDate()) + '-' + z(d.getMonth()+1) + '-' + d.getFullYear() +
' ' + z(d.getHours()) + ':' + z(d.getMinutes()) + ':' + z(d.getSeconds());
}
document.write('<br>' + formatDate(parseDMMMY('16-Jan-2016')));
【讨论】:
你可以使用moment parsing函数和format方法:
var dateString = "12-Jan-2016";
var convertedFormat = moment(dateString, "DD-MMM-YYYY").format("YYYY-MM-DD HH:mm:ss");
console.log(convertedFormat);
// this will display: 2016-01-12 00:00:00
请确保Jan 是您所在地区的有效月份。
【讨论】:
我认为此功能可能会为您提供您正在搜索的内容。
def parseStringDate(String date,Boolean flagTime=false){
def date
def Format='yyyy-MM-dd'
def datePart=_date.toString().substring(0,10)
if (flagTime){
date = datePart+" "+_date.toString().substring(11,19)
Format=Format+" "+'HH:mm:ss'
}else date = datePart
return [date, Format]
}
【讨论】: