Wenn wir anrufen getMonth()und getDate()auf dateObjekt, werden wir das bekommen single digit number. Beispielsweise :
Für january, es wird angezeigt 1, aber ich muss es als anzeigen 01. Wie geht das?
Wenn wir anrufen getMonth()und getDate()auf dateObjekt, werden wir das bekommen single digit number. Beispielsweise :
Für january, es wird angezeigt 1, aber ich muss es als anzeigen 01. Wie geht das?
Antworten:
("0" + this.getDate()).slice(-2)
für das Datum und ähnlich:
("0" + (this.getMonth() + 1)).slice(-2)
für den Monat.
function addZ(n){return n<10? '0'+n:''+n;}ist etwas allgemeiner.
getMonthund getDategeben Zahlen zurück, keine Zeichenfolgen. Und wenn Kompatibilität mit Strings erforderlich ist, '0' + Number(n)wird dies erledigt.
Wenn Sie ein Format wie "JJJJ-MM-TTTHH: mm: ss" möchten, ist dies möglicherweise schneller:
var date = new Date().toISOString().substr(0, 19);
// toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZ
Oder das häufig verwendete MySQL-Datums- / Uhrzeitformat "JJJJ-MM-TT HH: mm: ss":
var date2 = new Date().toISOString().substr(0, 19).replace('T', ' ');
ich hoffe das hilft
Beispiel für Monat:
function getMonth(date) {
var month = date.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
Sie können das DateObjekt auch mit folgender Funktion erweitern:
Date.prototype.getMonthFormatted = function() {
var month = this.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
Der beste Weg, dies zu tun, besteht darin, einen eigenen einfachen Formatierer zu erstellen (siehe unten):
getDate()gibt den Tag des Monats zurück (von 1-31)
getMonth()gibt den Monat zurück (von 0-11) <nullbasiert , 0 = Januar, 11 = Dezember
getFullYear() gibt das Jahr zurück (vier Ziffern) < nicht verwendengetYear()
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);
}
Warum nicht verwenden padStart?
var dt = new Date();
year = dt.getYear() + 1900;
month = (dt.getMonth() + 1).toString().padStart(2, "0");
day = dt.getDate().toString().padStart(2, "0");
console.log(year + '/' + month + '/' + day);
Dies gibt immer zweistellige Zahlen zurück, auch wenn der Monat oder Tag kleiner als 10 ist.
Anmerkungen:
getYear() gibt das Jahr von 1900 zurück und benötigt nicht padStart .getMonth() Gibt den Monat von 0 bis 11 zurück.
getDate() Gibt den Tag von 1 bis 31 zurück.
07und wir müssen keine 1 hinzufügen, bevor wir den String auffüllen.padStart
Das Folgende wird verwendet, um das Datumsformat db2, dh JJJJ-MM-TT, mit dem ternären Operator zu konvertieren
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);
Ich würde das tun:
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
Nur ein weiteres Beispiel, fast ein Liner.
var date = new Date();
console.log( (date.getMonth() < 9 ? '0': '') + (date.getMonth()+1) );
Wenn es etwas Zeit sparen könnte, suchte ich nach:
YYYYMMDD
für heute und verstanden sich mit:
const dateDocumentID = new Date()
.toISOString()
.substr(0, 10)
.replace(/-/g, '');
DD/MM/YYich ging zunew Date().toISOString().substr(0, 10).split('-').reverse().map(x => x.substr(0, 2)).join('/')
Das war meine Lösung:
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;
Mit Moment.js kann es so gemacht werden:
moment(new Date(2017, 1, 1)).format('DD') // day
moment(new Date(2017, 1, 1)).format('MM') // month
Keine Antwort, aber hier ist, wie ich das Datumsformat erhalte, das ich in einer Variablen benötige
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);
Hoffe das hilft!
Tipp von 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);
new Date().getMonth() Methode gibt den Monat als Zahl zurück (0-11)
Mit dieser Funktion können Sie die Monatszahl leicht korrigieren.
function monthFormatted() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
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];
}
Und eine andere Version hier https://jsfiddle.net/ivos/zcLxo8oy/1/ , hoffe nützlich zu sein.
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$1")
Die Antworten hier waren hilfreich, aber ich brauche mehr als das: nicht nur Monat, Datum, Monat, Stunden und Sekunden für einen Standardnamen.
Interessanterweise wurde, obwohl für alle oben genannten Punkte ein "0" vorangestellt wurde, "+ 1" nur für einen Monat benötigt, nicht für andere.
Zum Beispiel:
("0" + (d.getMonth() + 1)).slice(-2) // Note: +1 is needed
("0" + (d.getHours())).slice(-2) // Note: +1 is not needed
Meine Lösung:
function addLeadingChars(string, nrOfChars, leadingChar) {
string = string + '';
return Array(Math.max(0, (nrOfChars || 2) - string.length + 1)).join(leadingChar || '0') + string;
}
Verwendungszweck:
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]))
Wenn Sie möchten, dass die Funktion getDate () das Datum als 01 anstelle von 1 zurückgibt, finden Sie hier den Code dafür .... Nehmen wir an, das heutige Datum ist der 01-11-2018
var today = new Date();
today = today.getFullYear()+ "-" + (today.getMonth() + 1) + "-" + today.getDate();
console.log(today); //Output: 2018-11-1
today = today.getFullYear()+ "-" + (today.getMonth() + 1) + "-" + ((today.getDate() < 10 ? '0' : '') + today.getDate());
console.log(today); //Output: 2018-11-01
Ich wollte so etwas machen und das habe ich gemacht
ps Ich weiß, dass es oben die richtigen Antworten gibt, wollte aber hier nur etwas Eigenes hinzufügen
const todayIs = async () =>{
const now = new Date();
var today = now.getFullYear()+'-';
if(now.getMonth() < 10)
today += '0'+now.getMonth()+'-';
else
today += now.getMonth()+'-';
if(now.getDay() < 10)
today += '0'+now.getDay();
else
today += now.getDay();
return today;
}
Wenn Sie kleiner als 10 markieren, müssen Sie dafür keine neue Funktion erstellen. Weisen Sie einfach eine Variable in Klammern zu und geben Sie sie mit dem ternären Operator zurück.
(m = new Date().getMonth() + 1) < 10 ? `0${m}` : `${m}`
currentDate(){
var today = new Date();
var dateTime = today.getFullYear()+'-'+
((today.getMonth()+1)<10?("0"+(today.getMonth()+1)):(today.getMonth()+1))+'-'+
(today.getDate()<10?("0"+today.getDate()):today.getDate())+'T'+
(today.getHours()<10?("0"+today.getHours()):today.getHours())+ ":" +
(today.getMinutes()<10?("0"+today.getMinutes()):today.getMinutes())+ ":" +
(today.getSeconds()<10?("0"+today.getSeconds()):today.getSeconds());
return dateTime;
},
Ich würde vorschlagen, dass Sie eine andere Bibliothek namens Moment https://momentjs.com/ verwenden.
Auf diese Weise können Sie das Datum direkt formatieren, ohne zusätzliche Arbeit leisten zu müssen
const date = moment().format('YYYY-MM-DD')
// date: '2020-01-04'
Stellen Sie sicher, dass Sie auch moment importieren, um ihn verwenden zu können.
yarn add moment
# to add the dependency
import moment from 'moment'
// import this at the top of the file you want to use it in
Hoffe das hilft: D.
$("body").delegate("select[name='package_title']", "change", function() {
var price = $(this).find(':selected').attr('data-price');
var dadaday = $(this).find(':selected').attr('data-days');
var today = new Date();
var endDate = new Date();
endDate.setDate(today.getDate()+parseInt(dadaday));
var day = ("0" + endDate.getDate()).slice(-2)
var month = ("0" + (endDate.getMonth() + 1)).slice(-2)
var year = endDate.getFullYear();
var someFormattedDate = year+'-'+month+'-'+day;
$('#price_id').val(price);
$('#date_id').val(someFormattedDate);
});