19 ответов:
("0" + this.getDate()).slice(-2)для даты, и подобные:
("0" + (this.getMonth() + 1)).slice(-2)в течение месяца.
Если вы хотите формат, как "YYYY-MM-DDTHH: mm:ss", то это может быть быстрее:
var date = new Date().toISOString().substr(0, 19); // toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZили обычно используемый формат MySQL datetime "YYYY-MM-DD HH: mm:ss":
var date2 = new Date().toISOString().substr(0, 19).replace('T', ' ');надеюсь, это поможет
пример за месяц:
function getMonth(date) { var month = date.getMonth() + 1; return month < 10 ? '0' + month : '' + month; // ('' + month) for string result }вы также можете расширить
Dateобъект с такой функцией:Date.prototype.getMonthFormatted = function() { var month = this.getMonth() + 1; return month < 10 ? '0' + month : '' + month; // ('' + month) for string result }
лучший способ сделать это-создать свой собственный простой форматер (как показано ниже):
getDate()возвращает день месяца (от 1-31)getMonth()возвращает месяц (от 0-11) на основе нуля, 0=Январь, 11=декабрьgetFullYear()возвращает год (четыре цифры) не используйтеgetYear()function formatDateToString(date){ // 01, 02, 03, ... 29, 30, 31 var dd = (date.getDate() < 10 ? '0' : '') + date.getDate(); // 01, 02, 03, ... 10, 11, 12 var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1); // 1970, 1971, ... 2015, 2016, ... var yyyy = date.getFullYear(); // create the format you want return (dd + "-" + MM + "-" + yyyy); }
для преобразования формата дат db2 используется следующее т. е. гггг-ММ-ДД с использованием тернарного оператора
var currentDate = new Date(); var twoDigitMonth=((currentDate.getMonth()+1)>=10)? (currentDate.getMonth()+1) : '0' + (currentDate.getMonth()+1); var twoDigitDate=((currentDate.getDate())>=10)? (currentDate.getDate()) : '0' + (currentDate.getDate()); var createdDateTo = currentDate.getFullYear() + "-" + twoDigitMonth + "-" + twoDigitDate; alert(createdDateTo);
function monthFormated(date) { //If date is not passed, get current date if(!date) date = new Date(); month = date.getMonth(); // if month 2 digits (9+1 = 10) don't add 0 in front return month < 9 ? "0" + (month+1) : month+1; }
function monthFormated() { var date = new Date(), month = date.getMonth(); return month+1 < 10 ? ("0" + month) : month; }
Это было мое решение:
function leadingZero(value) { if (value < 10) { return "0" + value.toString(); } return value.toString(); } var targetDate = new Date(); targetDate.setDate(targetDate.getDate()); var dd = targetDate.getDate(); var mm = targetDate.getMonth() + 1; var yyyy = targetDate.getFullYear(); var dateCurrent = leadingZero(mm) + "/" + leadingZero(dd) + "/" + yyyy;
еще один пример, почти один лайнер.
var date = new Date(); console.log( (date.getMonth() < 9 ? '0': '') + (date.getMonth()+1) );
Не ответ, но вот как я получаю формат даты, который мне нужен в переменной
function setDateZero(date){ return date < 10 ? '0' + date : date; } var curr_date = ev.date.getDate(); var curr_month = ev.date.getMonth() + 1; var curr_year = ev.date.getFullYear(); var thisDate = curr_year+"-"+setDateZero(curr_month)+"-"+setDateZero(curr_date);надеюсь, что это помогает!
С помощью момент.js Это можно сделать так:
moment(new Date(2017, 1, 1)).format('DD') // day moment(new Date(2017, 1, 1)).format('MM') // month
почему бы не использовать
padStart?var d = new Date(); d.getMonth().toString().padStart(2, "0"); d.getDate().toString().padStart(2, "0");
Совет MDN:
function date_locale(thisDate, locale) { if (locale == undefined) locale = 'fr-FR'; // set your default country above (yes, I'm french !) // then the default format is "dd/mm/YYY" if (thisDate == undefined) { var d = new Date(); } else { var d = new Date(thisDate); } return d.toLocaleDateString(locale); } var thisDate = date_locale(); var dayN = thisDate.slice(0, 2); var monthN = thisDate.slice(3, 5); console.log(dayN); console.log(monthN);
function GetDateAndTime(dt) { var arr = new Array(dt.getDate(), dt.getMonth(), dt.getFullYear(),dt.getHours(),dt.getMinutes(),dt.getSeconds()); for(var i=0;i<arr.length;i++) { if(arr[i].toString().length == 1) arr[i] = "0" + arr[i]; } return arr[0] + "." + arr[1] + "." + arr[2] + " " + arr[3] + ":" + arr[4] + ":" + arr[5]; }
и еще одна версия здесь https://jsfiddle.net/ivos/zcLxo8oy/1/, надеюсь быть полезным.
var dt = new Date(2016,5,1); // just for the test var separator = '.'; var strDate = (dt.getFullYear() + separator + (dt.getMonth() + 1) + separator + dt.getDate()); // end of setup strDate = strDate.replace(/(\b\d{1}\b)/g, "0")
ответы здесь были полезны, однако мне нужно больше, чем это: не только месяц, дата, месяц, часы и секунды, для имени по умолчанию.
интересно, что хотя добавка " 0 " была необходима для всего выше," + 1 " была нужна только для месяца, а не для других.
например:
("0" + (d.getMonth() + 1)).slice(-2) // Note: +1 is needed ("0" + (d.getHours())).slice(-2) // Note: +1 is not needed
мое решение:
function addLeadingChars(string, nrOfChars, leadingChar) { string = string + ''; return Array(Math.max(0, (nrOfChars || 2) - string.length + 1)).join(leadingChar || '0') + string; }использование:
var date = new Date(), month = addLeadingChars(date.getMonth() + 1), day = addLeadingChars(date.getDate());jsfiddle: http://jsfiddle.net/8xy4Q/1/
var net = require('net') function zeroFill(i) { return (i < 10 ? '0' : '') + i } function now () { var d = new Date() return d.getFullYear() + '-' + zeroFill(d.getMonth() + 1) + '-' + zeroFill(d.getDate()) + ' ' + zeroFill(d.getHours()) + ':' + zeroFill(d.getMinutes()) } var server = net.createServer(function (socket) { socket.end(now() + '\n') }) server.listen(Number(process.argv[2]))
Я бы сделал так:
var d = new Date('January 13, 2000'); var s = d.toLocaleDateString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric' }); console.log(s); // prints 01/13/2000
Comments