如何格式化JavaScript日期對象以將其打印爲10-Aug-2010
? html
好吧,我想要的是將今天的日期轉換爲MySQL友好的日期字符串,例如2012-06-23,並在個人一個查詢中將該字符串用做參數。 我發現的簡單解決方案是: jquery
var today = new Date().toISOString().slice(0, 10);
請記住,上述解決方案未考慮您的時區偏移量。 api
您能夠考慮改用如下功能: ide
function toJSONLocal (date) { var local = new Date(date); local.setMinutes(date.getMinutes() - date.getTimezoneOffset()); return local.toJSON().slice(0, 10); }
若是您在一天的開始/結束時間執行此代碼,這將爲您提供正確的日期。 oop
將jQuery UI插件添加到您的頁面: ui
function DateFormate(dateFormate, datetime) { return $.datepicker.formatDate(dateFormate, datetime); };
Sugar.js對Date對象具備出色的擴展,包括Date.format方法。 this
文檔中的示例: spa
Date.create().format('{Weekday} {Month} {dd}, {yyyy}'); Date.create().format('{12hr}:{mm}{tt}')
這是我剛編寫的一些代碼,用於處理我正在處理的項目的日期格式。 它模仿了PHP日期格式化功能以知足個人需求。 隨意使用它,只是擴展已經存在的Date()對象。 這可能不是最優雅的解決方案,但它能夠知足個人需求。 .net
var d = new Date(); d_string = d.format("m/d/Y h:i:s"); /************************************** * Date class extension * */ // Provide month names Date.prototype.getMonthName = function(){ var month_names = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ]; return month_names[this.getMonth()]; } // Provide month abbreviation Date.prototype.getMonthAbbr = function(){ var month_abbrs = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]; return month_abbrs[this.getMonth()]; } // Provide full day of week name Date.prototype.getDayFull = function(){ var days_full = [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ]; return days_full[this.getDay()]; }; // Provide full day of week name Date.prototype.getDayAbbr = function(){ var days_abbr = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat' ]; return days_abbr[this.getDay()]; }; // Provide the day of year 1-365 Date.prototype.getDayOfYear = function() { var onejan = new Date(this.getFullYear(),0,1); return Math.ceil((this - onejan) / 86400000); }; // Provide the day suffix (st,nd,rd,th) Date.prototype.getDaySuffix = function() { var d = this.getDate(); var sfx = ["th","st","nd","rd"]; var val = d%100; return (sfx[(val-20)%10] || sfx[val] || sfx[0]); }; // Provide Week of Year Date.prototype.getWeekOfYear = function() { var onejan = new Date(this.getFullYear(),0,1); return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7); } // Provide if it is a leap year or not Date.prototype.isLeapYear = function(){ var yr = this.getFullYear(); if ((parseInt(yr)%4) == 0){ if (parseInt(yr)%100 == 0){ if (parseInt(yr)%400 != 0){ return false; } if (parseInt(yr)%400 == 0){ return true; } } if (parseInt(yr)%100 != 0){ return true; } } if ((parseInt(yr)%4) != 0){ return false; } }; // Provide Number of Days in a given month Date.prototype.getMonthDayCount = function() { var month_day_counts = [ 31, this.isLeapYear() ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; return month_day_counts[this.getMonth()]; } // format provided date into this.format format Date.prototype.format = function(dateFormat){ // break apart format string into array of characters dateFormat = dateFormat.split(""); var date = this.getDate(), month = this.getMonth(), hours = this.getHours(), minutes = this.getMinutes(), seconds = this.getSeconds(); // get all date properties ( based on PHP date object functionality ) var date_props = { d: date < 10 ? '0'+date : date, D: this.getDayAbbr(), j: this.getDate(), l: this.getDayFull(), S: this.getDaySuffix(), w: this.getDay(), z: this.getDayOfYear(), W: this.getWeekOfYear(), F: this.getMonthName(), m: month < 10 ? '0'+(month+1) : month+1, M: this.getMonthAbbr(), n: month+1, t: this.getMonthDayCount(), L: this.isLeapYear() ? '1' : '0', Y: this.getFullYear(), y: this.getFullYear()+''.substring(2,4), a: hours > 12 ? 'pm' : 'am', A: hours > 12 ? 'PM' : 'AM', g: hours % 12 > 0 ? hours % 12 : 12, G: hours > 0 ? hours : "12", h: hours % 12 > 0 ? hours % 12 : 12, H: hours, i: minutes < 10 ? '0' + minutes : minutes, s: seconds < 10 ? '0' + seconds : seconds }; // loop through format array of characters and add matching data else add the format character (:,/, etc.) var date_string = ""; for(var i=0;i<dateFormat.length;i++){ var f = dateFormat[i]; if(f.match(/[a-zA-Z]/g)){ date_string += date_props[f] ? date_props[f] : ''; } else { date_string += f; } } return date_string; }; /* * * END - Date class extension * ************************************/
若是您已經在項目中使用jQuery UI ,則能夠經過如下方式進行操做: prototype
var formatted = $.datepicker.formatDate("M d, yy", new Date("2014-07-08T09:02:21.377")); // formatted will be 'Jul 8, 2014'
一些datepicker日期格式選項可在此處使用 。