在我的Ruby on Rails應用程序中,我有一個用戶可以設置日期的字段。該字段值的格式如下:jQuery,添加日期
$('#search_form_handover_date').val()
#returns
"15-07-2014 09:00"
現在我怎樣才能例如添加到該日起3天,有: 「18-07-2014 09:00」
在我的Ruby on Rails應用程序中,我有一個用戶可以設置日期的字段。該字段值的格式如下:jQuery,添加日期
$('#search_form_handover_date').val()
#returns
"15-07-2014 09:00"
現在我怎樣才能例如添加到該日起3天,有: 「18-07-2014 09:00」
我的moment.js的忠實粉絲,如果你不介意使用第三方JS lib中,你可以做.....
// As the format you gave is non standard, you need to tell moment what it's getting
var myTime = moment("15-07-2014 09:00", "DD-MM-YYYY HH:mm");
console.log(myTime.format('DD-MM-YYYY HH:mm'));
var newTime = moment(myTime).add('3', 'days');
console.log(newTime.format('DD-MM-YYYY HH:mm'));
感謝您的幫助,但我不想使用外部庫。我非常接近解決方案。我只需要轉換: Date {Fri Jul 18 2014 00:00:00 GMT + 0200(CEST)} to this: 「18-07-2014 09:00」 –
我決定使用moment.js,因爲它是一個偉大的文庫。感謝幫助。 –
嘗試類似下面如果您的日期字符串始終保持相同的格式,
var date = "15-07-2014 09:00";
var dateParts = (date.split(" ")[0]).split("-");
var timeParts = (date.split(" ")[1]).split(":");
var dateObj = new Date(dateParts[2],dateParts[1]-1,dateParts[0],timeParts[0],timeParts[1]);
dateObj.setDate(dateObj.getDate()+3);
console.log(dateObj)
//If you don't use any library like Jquery datepicker, you have to use basic js operation to format the date (but not recommend)
console.log(formateDate(dateObj))
function formateDate(DateObj)
{
return addLeadingZeros(dateObj.getDate())+"-"+addLeadingZeros(dateObj.getMonth()+1)+"-"+dateObj.getFullYear()+" "+addLeadingZeros(dateObj.getHours())+":"+addLeadingZeros(dateObj.getMinutes());
}
function addLeadingZeros(intArg)
{
return ('0' + intArg).slice(-2)
}
這是一個很好的解決方案。但最後我想把這個dateObj作爲這種格式的字符串:「15-07-2014 09:00」。你知道該怎麼做嗎? –
我編輯了答案,但我建議你使用一些庫來設置你的日期格式。 –
看起來像一個無效的日期格式,你使用的是日期選擇器,爲什麼是該格式的日期? – adeneo
我使用的是: http://xdsoft.net/jqplugins/datetimepicker/ 而我在javascipt文件中的格式是: 格式:'d-m-Y H:i' –