如何将时间从格式“2011年6月9日00:00:00 GMT + 0530(印度标准时间)”转换为YYYY-MM-DD。
当我尝试提醒()日期时,这将显示如下日期 - 2011年6月9日星期四00:00:00 GMT + 0530(印度标准时间)
但我需要YYYY-MM-DD格式的时间。
是否有要转换的内置函数?
答案 0 :(得分:19)
您可以使用Date
构造函数解析日期,然后吐出各个时间组件:
function convert(str) {
var date = new Date(str),
mnth = ("0" + (date.getMonth()+1)).slice(-2),
day = ("0" + date.getDate()).slice(-2);
return [ date.getFullYear(), mnth, day ].join("-");
}
convert("Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)");
//-> "2011-06-08"
从结果中可以看出,这会将日期解析为本地时区。如果您想根据原始时区保留日期,最简单的方法是拆分字符串并提取您需要的部分:
function convert(str) {
var mnths = {
Jan:"01", Feb:"02", Mar:"03", Apr:"04", May:"05", Jun:"06",
Jul:"07", Aug:"08", Sep:"09", Oct:"10", Nov:"11", Dec:"12"
},
date = str.split(" ");
return [ date[3], mnths[date[1]], date[2] ].join("-");
}
convert("Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)");
//-> "2011-06-09"
答案 1 :(得分:3)
function convert(str) {
var date = new Date(str),
mnth = ("0" + (date.getMonth()+1)).slice(-2),
day = ("0" + date.getDate()).slice(-2);
hours = ("0" + date.getHours()).slice(-2);
minutes = ("0" + date.getMinutes()).slice(-2);
return [ date.getFullYear(), mnth, day, hours, minutes ].join("-");
}
我在角度中有效地使用了这个,因为我在更新$ scope.START事件时失去了两个小时,并且$ scope.ENDevent,IN console.log很好,但是保存到mYsql会减少两个小时。
var whatSTART = $scope.STARTevent;
whatSTART = convert(whatever);
这也适用于END
答案 2 :(得分:3)
对我来说,转换日期最简单的方法是将日期字符串化然后切成薄片。
var event = new Date("Fri Apr 05 2019 16:59:00 GMT-0700 (Pacific Daylight Time)");
let date = JSON.stringify(event)
date = date.slice(1,11)
// console.log(date) = '2019-04-05'
答案 3 :(得分:1)
以上解决方案仅在字符串时才有效。输入类型日期,在某些情况下为javascript 日期对象提供输出,例如使用angular等。这就是为什么有些人会收到像#34; TypeError:str.split不是函数"的错误。它是一个日期对象,所以你应该在javascript中使用Date对象的函数来操作它。 示例:
var date = $scope.dateObj ;
//dateObj is data bind to the ng-modal of input type dat.
console.log(date.getFullYear()); //this will give you full year eg : 1990
console.log(date.getDate()); //gives you the date from 1 to 31
console.log(date.getMonth() + 1); //getMonth will give month from 0 to 11
请查看以下链接以供参考:
答案 4 :(得分:0)
function convertDatePickerTimeToMySQLTime(str) {
var month, day, year, hours, minutes, seconds;
var date = new Date(str),
month = ("0" + (date.getMonth() + 1)).slice(-2),
day = ("0" + date.getDate()).slice(-2);
hours = ("0" + date.getHours()).slice(-2);
minutes = ("0" + date.getMinutes()).slice(-2);
seconds = ("0" + date.getSeconds()).slice(-2);
var mySQLDate = [date.getFullYear(), month, day].join("-");
var mySQLTime = [hours, minutes, seconds].join(":");
return [mySQLDate, mySQLTime].join(" ");
}
答案 5 :(得分:0)
var first_date = new Date("Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)"); var start_date = first_date.toLocaleDateString().slice(0,10);