Ich bin relativ neu in JavaScript und wurde gebeten, einen Datumsrechner zu erstellen, der berechnet, wie alt Sie im Vergleich zum 31. März 2019 sind. Ich habe diesen Teil zum Laufen gebracht, aber der Kunde hat darum gebeten, dass er ihn ausfüllen kann das Datum als TT/MM/JJJJ und nicht als Standard MM/TT/JJJJ!?
Ich habe versucht, eine Bootstrap-Datumsauswahl zu verwenden und zu einer Texteingabe zu wechseln, aber ich erhalte immer ein ungültiges Datum!?
Dies scheint eine Codezeile zu sein, die mir fehlt, aber einige der Beispiele, die ich ausprobiert habe, haben bei mir nicht funktioniert... also hier ist mein JS und HTML, das ich im Moment dafür verwende, wenn jemand kann dabei helfen, wäre sehr dankbar!
https://codepen.io/raindahl/pen/vzBXgV
function ageCalculate() {
var birthDate1 = document.getElementById("birth_date").value;
var today = new Date("2019-03-31");
var birthDate = new Date(birthDate1);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
document.getElementById("age").innerHTML =
"<strong>On 31st March 2019 the patient will be:</strong>" +
" " +
age +
" years " +
" " +
"old";
var year_age = age;
var az = document.getElementById("invalid");
var bd = document.getElementById("age");
if (isNaN(year_age)) {
bd.style.display = "none";
az.style.display = "block";
}
if (year_age <= 64) {
bd.style.display = "block";
az.style.display = "none";
}
if (year_age >= 65) {
bd.style.display = "block";
az.style.display = "none";
}
if (year_age >= 75) {
bd.style.display = "block";
az.style.display = "none";
}
}
<input type="date" class="datepicker" id="birth_date" placeholder="DD/MM/YYYY" />
<input class="btn btn-primary" type="button" value="OK" onclick="ageCalculate()">
<div class="col-md-6 col-sm-6">
<!-- Displays the patients age: 42 Years 7months -->
<div id="age"></div>
<!-- Invalid Dates -->
<div id="invalid" style="display:none;">
<div class="alert alert-danger">
<span class="fa fa-exclamation-triangle"></span> <strong>Invalid date of birth</strong>
</div>
</div>
<!-- Over 65 Years Old -->
<div id="over65" style="display:none;">
<div class="alert alert-success">
<span class="fa fa-check"></span> <strong>This patient requires Trivalent (TIV) </strong>
</div>
</div>
<!-- Over 75 Years Old -->
<div id="over75" style="display:none;">
<div class="alert alert-success">
<span class="fa fa-check"></span> <strong>This patient requires Adjuvanted Trivalent (aTIV)</strong>
</div>
</div>
<!-- Under 65 Years Old -->
<div id="under65" style="display: none;">
<div class="alert alert-success">
<span class="fa fa-check"></span> <strong>This patient requires Quadrivalent (QIV)</strong>
</div>
</div>
<p id="demo"></p>
</div>
Lösung des Problems
Versuchen Sie, diese Funktion zu verwenden, sie gibt das Datum als TT/MM/JJJJ zurück
function dateFormatter(date) {
date = new Date(date);
const date_string =
(date.getDate().toString().length === 2
? date.getDate()
: "0" + date.getDate().toString()) +
"/" +
((date.getMonth() + 1).toString().length === 2
? date.getMonth() + 1
: "0" + (date.getMonth() + 1).toString()) +
"/" +
date.getFullYear();
return date_string;
}
Keine Kommentare:
Kommentar veröffentlichen