Bagaimana cara menetapkan nilai default tanggal jenis input ke hari ini?

403

Jenis input HTML5 sangat bagus, pemilih tanggal bawaan baru Opera sangat mudah, dan Chrome setidaknya telah mendukung jenis masukan baru dengan implementasi roda putar.

Tetapi apakah ada cara untuk menetapkan nilai default bidang tanggal ke tanggal hari ini? Dengan Opera, saya dapat memilih 'Hari Ini' dari pemilih tanggal, dan segera setelah saya mengklik salah satu tombol langkah di Chrome, itu menambah / mengurangi dari tanggal hari ini.

Saya tidak malu untuk memberi kode solusi untuk masalah kecil ini, tetapi tampaknya konyol bagi saya bahwa kedua browser sepenuhnya menyadari tanggal saat ini tetapi tidak secara otomatis hanya memasukkannya (setidaknya sebagai pengganti).

Ian Brown
sumber
mungkin ini akan membantu stackoverflow.com/questions/14212527/…
Musa
Solusinya: stackoverflow.com/a/38801898/3147690
villamejia
4
var date = Tanggal baru (); // buat objek tanggal var min_date = date.toISOString (). slice (0,10); //// dapatkan tanggal spesifik saat ini bagian "2018-02-02"
Günay Gültekin
<input type = "date" value = "YYYY-MM-DD" />
Boris Detry

Jawaban:

288

Seperti bidang input HTML apa pun, browser akan membiarkannya kosong kecuali jika nilai default ditentukan dengan valueatribut.

Sayangnya HTML5 tidak menyediakan cara untuk menentukan 'hari ini' dalam valueatribut (yang dapat saya lihat), hanya tanggal RFC3339 yang valid seperti 2011-09-29.

TL; DR Gunakan YYYY-MM-DDformat tanggal atau tidak akan ditampilkan

Tak
sumber
50
untuk pengguna .net: DateTime.Today.ToString ("yyyy-MM-dd")
dvdmn
3
Perhatikan bahwa '0' di depan bulan dan hari diperlukan: "2011-09-29" berfungsi, "2011-9-29" tidak.
nico
2
Ruby: (Juga)DateTime.now.strftime("%Y-%m-%d")
Adam Grant
43
@ MartinBarker bukankah itu date('Y-m-d')seperti itu membutuhkan nol terkemuka?
SGR
15
Untuk JavaScript: myDate.toLocaleDateString('en-CA')lakukan trik
Ulysse BN
218

Objek Tanggal JavaScript menyediakan dukungan bawaan yang cukup untuk format yang diperlukan untuk menghindari melakukannya secara manual:

Tambahkan ini untuk dukungan zona waktu yang benar:

Date.prototype.toDateInputValue = (function() {
    var local = new Date(this);
    local.setMinutes(this.getMinutes() - this.getTimezoneOffset());
    return local.toJSON().slice(0,10);
});


jQuery:

$(document).ready( function() {
    $('#datePicker').val(new Date().toDateInputValue());
});​


JS murni:

document.getElementById('datePicker').value = new Date().toDateInputValue();
brianary
sumber
1
Hati-hati jika Anda mendukung ponsel. Di Android 4.0.3 (setidaknya) saya mengalami masalah ketika tanggal baru yang dipilih melalui kontrol tanggal popup ditambahkan ke tanggal hari ini, bukan menggantikannya. Misalnya Anda dapat berakhir dengan 2013-03-252013-03-27 daripada 2013-03-25, dan tidak ada cara bagi pengguna untuk mengubahnya.
Ben Clayton
1
@ Web_Designer Cukup adil. Anda akan ingin menyesuaikan dengan local.setMinutes(this.getMinutes() - this.getTimezoneOffset());(karena jawaban itu akhirnya) pertama, kemudian
brianary
1
Ini hanya menetapkan properti nilai , itu tidak mengatur atribut jadi jika formulir diatur ulang, defaultnya adalah tidak ada nilai. Selain itu, akan jauh lebih jelas untuk menggunakan toISOString , yang memang disebut toJSON .
RobG
1
@apraetor Sebenarnya, ini kebalikannya, karena hanya browser yang mendukung input tanggal yang mendukung valueAsDate(yang meninggalkan IE, Firefox, mungkin Safari, pada dasarnya semuanya kecuali Chrome, Opera, Edge, dan beberapa browser seluler). Semuanya mendukung valueproperti yang digunakan oleh solusi saya, bahkan ketika input tanggal kembali ke input teks di browser yang tidak mendukung, solusi lainnya akan kesalahan atau gagal.
brianary
2
Jawaban ini berhasil bagi saya menggunakan input[type=datetime-local]dan mengubahnya ke slice(0,19)HTH
jcruz
189

ini bekerja untuk saya:

document.getElementById('datePicker').valueAsDate = new Date();

https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement

André
sumber
1
apakah itu berfungsi di semua browser? dan versi seluler juga? Diuji?
Usman Younas
2
@UsmanY Ini adalah bagian dari spesifikasi HTML5, jadi apa pun yang mendukung tipe input HTML5 harus didukung valueAsDate. html.spec.whatwg.org/multipage/forms.html#dom-input-valueasdate
wersimmon
@harbichidian Proposal untuk input tanggal lebih cepat dari proposal untuk valueAsDate. Apakah Anda memiliki tautan ke dukungan peramban untuk properti itu?
brianary
3
Tanggal akan dikonversi menjadi waktu UTC. Jika Anda berada di 18:00 pada 2018-03-27 di -0600 dan Anda mengatur valueAsDateke new Date(), nilai bidang akan ditetapkan ke 2018-03-28. Lihat austinfrance.wordpress.com/2012/07/09/...
Aupajo
1
Seperti yang dikatakan @Aupajo, ini menetapkan tanggal yang salah jika Anda tidak ingin waktu UTC.
ADJenks
81

Kode berikut berfungsi dengan baik:

<input type="date" value="<?php echo date('Y-m-d'); ?>" />

Perhatikan bahwa ini bergantung pada PHP.

Isham Mohamed
sumber
64
Jawaban Anda sepenuhnya bergantung pada php.
Yëco
1
Jika formulir kontak Anda ada di halaman PHP (misalnya, di halaman WordPress atau kode pendek), ini berfungsi dengan baik. Terima kasih banyak Isham!
tristanojbacon
5
Anda dapat mengurangi redundansi dengan mengubah <?php echo date('Y-m-d', strtotime(date('Y/m/d'))); ?>ke<?php echo date('Y-m-d'); ?>
Murray Smith
7
Ini menetapkan tanggal sesuai dengan tanggal pembuatan (di server, di zona waktu server) dari dokumen HTML. Itu tidak perlu cocok dengan tanggal saat ini, karena sebenarnya mengisi bidang. JavaScript sisi klien lebih baik jika Anda perlu melakukan hal-hal yang bergantung pada sisi pengguna.
Jukka K. Korpela
1
Anda juga dapat menggunakan tag pendek <? = date ('Ym-d'); ?>. Satu "gema" kurang
sashok_bg
36

Anda dapat mengisi nilai default melalui javascript seperti yang terlihat di sini: http://jsfiddle.net/7LXPq/

$(document).ready( function() {
    var now = new Date();
    var month = (now.getMonth() + 1);               
    var day = now.getDate();
    if (month < 10) 
        month = "0" + month;
    if (day < 10) 
        day = "0" + day;
    var today = now.getFullYear() + '-' + month + '-' + day;
    $('#datePicker').val(today);
});

Saya mungkin akan memberikan sedikit waktu ekstra untuk melihat apakah bulan dan tanggal adalah satu digit dan awali dengan nol ekstra ... tetapi ini akan memberi Anda ide.

EDIT: Menambahkan cek untuk tambahan nol

Jeff
sumber
Di Opera (diuji pada Opera 12 / Windows) ini tidak berfungsi jika Anda tidak menempatkan nol terdepan dalam bulan dan hari.
Renato
31

Ikuti format Ymd standar, jika Anda menggunakan PHP

<input type="date" value="<?php echo date("Y-m-d"); ?>">
Shuhad zaman
sumber
2
Anda harus menyebutkan bahwa jawaban ini berfungsi jika Anda menggunakan php, ini tidak berlaku untuk semua orang.
Motassem MK
24

HTML

<input type="date" id="theDate">

JS

$(document).ready(function() {
    var date = new Date();

    var day = date.getDate();
    var month = date.getMonth() + 1;
    var year = date.getFullYear();

    if (month < 10) month = "0" + month;
    if (day < 10) day = "0" + day;

    var today = year + "-" + month + "-" + day;       
    $("#theDate").attr("value", today);
});

demo

Jika Anda tidak ingin menggunakan jQuery, Anda dapat melakukan sesuatu seperti ini

HTML

<input type="date" id="theDate">

JS

var date = new Date();

var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();

if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;

var today = year + "-" + month + "-" + day;       
document.getElementById("theDate").value = today;

demo


sumber
22

Dalam HTML5, tidak ada cara untuk menetapkan nilai default bidang tanggal ke tanggal hari ini? Seperti yang ditunjukkan dalam jawaban lain, nilainya dapat diatur menggunakan JavaScript, dan ini biasanya merupakan pendekatan terbaik jika Anda ingin mengatur default sesuai dengan tanggal saat ini kepada pengguna saat halaman dimuat.

HTML5 mendefinisikan valueAsDateproperti untuk input type=dateelemen, dan menggunakannya, Anda bisa mengatur nilai awal langsung dari objek yang dibuat misalnya oleh new Date(). Namun, misalnya IE 10 tidak tahu properti itu. (Ini juga tidak memiliki dukungan asli untukinput type=date , tapi itu masalah yang berbeda.)

Jadi dalam praktiknya Anda perlu mengatur valueproperti, dan harus dalam notasi konforman ISO 8601. Saat ini hal ini dapat dilakukan dengan lebih mudah, karena kita dapat mengharapkan browser yang digunakan saat ini untuk mendukung toISOStringmetode ini:

<input type=date id=e>
<script>
document.getElementById('e').value = new Date().toISOString().substring(0, 10);
</script>
Jukka K. Korpela
sumber
6
Atau jika Anda menginginkannya sesuai Y10K:= new Date().toISOString().split('T')[0];
Blazemonger
1
toISOString mengembalikan tanggal dan waktu UTC, jadi mungkin tidak menunjukkan tanggal yang benar untuk zona waktu pengguna. Misalnya, jika pengguna adalah UTC + 0800, maka dari tengah malam hingga pukul 08:00 mereka akan mendapatkan tanggal kemarin.
RobG
18

Jika Anda melakukan sesuatu yang berkaitan dengan tanggal dan waktu di browser, Anda ingin menggunakan Moment.js :

moment().format('YYYY-MM-DD');

moment()mengembalikan objek yang mewakili tanggal dan waktu saat ini. Anda kemudian memanggil .format()metodenya untuk mendapatkan representasi string sesuai dengan format yang ditentukan. Dalam hal ini YYYY-MM-DD,.

Contoh lengkap:

<input id="today" type="date">
<script>
document.getElementById('today').value = moment().format('YYYY-MM-DD');
</script>
Gabriel Garcia
sumber
Jika Anda sudah memiliki momen () tersedia atau berencana untuk melakukan lebih banyak pekerjaan kencan di aplikasi web Anda, solusi ini adalah no-brainer. Momen memecahkan begitu banyak masalah.
secretwep
10

gunakan moment.js untuk menyelesaikan masalah ini dalam 2 baris, tipe input tanggal html5 hanya menerima "YYYY-MM-DD" format ini. Saya memecahkan masalah saya dengan cara ini.

var today = moment().format('YYYY-MM-DD');
 $('#datePicker').val(today);

ini adalah cara paling sederhana untuk menyelesaikan masalah ini.

Umair Khalid
sumber
8

Javascript

document.getElementById('date-field').value = new Date().toISOString().slice(0, 10);

Jquery

$('#date-field').val(new Date().toISOString().slice(0, 10));

Pilihan lain

Jika Anda ingin menyesuaikan tanggal, bulan dan tahun, lakukan saja jumlah atau sub sesuai keinginan Anda 😎 Untuk bulan dimulai dari 0, itulah mengapa perlu menjumlahkan 1 dengan bulan.

function today() {
        let d = new Date();
        let currDate = d.getDate();
        let currMonth = d.getMonth()+1;
        let currYear = d.getFullYear();
        return currYear + "-" + ((currMonth<10) ? '0'+currMonth : currMonth )+ "-" + ((currDate<10) ? '0'+currDate : currDate );
    }

Appy fungsi hari ini

document.getElementById('date-field').value = today();

$('#date-field').val(today());
MD Iyasin Arafat
sumber
7

Sangat Sederhana, Cukup gunakan bahasa sisi server seperti PHP, ASP, JAVA atau bahkan Anda dapat menggunakan javascript.

Ini solusinya

<?php
  $timezone = "Asia/Colombo";
  date_default_timezone_set($timezone);
  $today = date("Y-m-d");
?>
<html>
  <body>
    <input type="date" value="<?php echo $today; ?>">
  </body>
</html>
teshguru
sumber
7
<input id="datePicker" type="date" />

$(document).ready( function() {
    var now = new Date();
 
    var day = ("0" + now.getDate()).slice(-2);
    var month = ("0" + (now.getMonth() + 1)).slice(-2);

    var today = now.getFullYear()+"-"+(month)+"-"+(day) ;


   $('#datePicker').val(today);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="datePicker" type="date" />

Santanu
sumber
5

jika Anda perlu mengisi input datetime, Anda dapat menggunakan ini:

<input type="datetime-local" name="datetime" 
       value="<?php echo date('Y-m-d').'T'.date('H:i'); ?>" />
pengguna2615287
sumber
5

Untuk NodeJS (Ekspres dengan templat SWIG):

<input type="date" id="aDate" name="aDate" class="form-control" value="{{ Date.now() | date("Y-m-d") }}" />
CodeValve
sumber
5

Solusi paling sederhana tampaknya mengabaikan waktu UTC yang akan digunakan, termasuk yang sangat terpilih. Di bawah ini adalah versi sederhana, ES6, non-jQuery dari beberapa jawaban yang ada:

const today = (function() {
    const now = new Date();
    const month = (now.getMonth() + 1).toString().padStart(2, '0');
    const day = now.getDate().toString().padStart(2, '0');
    return `${now.getFullYear()}-${month}-${day}`;
})();
console.log(today); // as of posting this answer: 2019-01-24
Dexygen
sumber
Anda harus menyatakan properti elemen input mana yang akan ditugaskan. valueatau valueAsDate? Terlihat bagus.
ADJenks
4

Inilah yang saya lakukan dalam kode saya, saya baru saja menguji dan itu bekerja dengan baik, tipe input = "date" tidak mendukung untuk mengatur curdate secara otomatis, jadi cara saya mengatasi keterbatasan ini adalah menggunakan kode PHP kode sederhana seperti ini .

<html>
<head></head>
    <body>
        <form ...>
            <?php
                echo "<label for='submission_date'>Data de submissão</label>";
                echo "<input type='date' name='submission_date' min='2012-01-01' value='" . date('Y-m-d') . "' required/>";
            ?>
        </form>
    </body>
</html>

Semoga ini bisa membantu!

Gumba
sumber
1
Hai dan selamat datang di SO, Silakan Tambahkan lebih banyak informasi untuk mendukung kode Anda dan pastikan bahwa orang yang mengajukan pertanyaan menginginkan solusi berbasis PHP.
Shiva
4

Kedua jawaban teratas itu salah.

Lapisan pendek yang menggunakan JavaScript murni, menyumbang zona waktu lokal dan tidak memerlukan fungsi tambahan untuk didefinisikan:

const element = document.getElementById('date-input');
element.valueAsNumber = Date.now()-(new Date()).getTimezoneOffset()*60000;
<input id='date-input' type='date'>

Ini mendapatkan datetime saat ini dalam milidetik (sejak zaman) dan menerapkan zona waktu offset dalam milidetik (menit * 60k menit per milidetik).

Anda dapat mengatur tanggal menggunakan element.valueAsDatetetapi kemudian Anda memiliki panggilan tambahan ke Date()konstruktor.

rovyko
sumber
4

Ini adalah sesuatu yang benar-benar perlu Anda lakukan di sisi server karena format waktu lokal masing-masing pengguna berbeda, belum lagi setiap browser berperilaku berbeda.

Nilai input Tanggal Html harus dalam format ini: yyyy-mm-dd jika tidak maka tidak akan menampilkan nilai.

ASP CLASSIC, ATAU VBSCRIPT:

current_year = DatePart("yyyy",date) 
current_month = DatePart("m",date) 
current_day = DatePart("d",date) 

IF current_month < 10 THEN
current_month = "0"&current_month
END IF
IF current_day < 10 THEN
current_day = "0"&current_day
END IF

get_date = current_year&"-"&current_month&"-"&current_day
Response.Write get_date

Output tanggal hari ini: 2019-02-08

Kemudian di html Anda: <input type="date" value="<% =get_date %>"

PHP

gunakan saja ini: <input type="date" value="<?= date("Y-m-d"); ?>">

csandreas1
sumber
4

Ini sangat sederhana dengan menerapkan kode berikut, Menggunakan PHP

<input type="date" value="<?= date('Y-m-d', time()); ?>" />

Fungsi tanggal akan mengembalikan tanggal saat ini, dengan mencatat tanggal di time() .

Gowtham Ag
sumber
2

oleh Javascript:

var today = new Date();

document.getElementById("theDate").value = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2);
Charnstyle
sumber
2
new Date().getFullYear()+"-"+ ((parseInt(new Date().getMonth())+1+100)+"").substring(1)
raja
sumber
1
Silakan tambahkan deskripsi dengan jawaban Anda.
bawa g
1

Jika Anda menggunakan ruby, Anda dapat menggunakan ini untuk menetapkan nilai default ke tanggal dan waktu hari ini:

<input type="datetime-local" name="time" value="<%= Time.now.strftime('%Y-%m-%dT%H:%M') %>" />
Sean
sumber
1

Solusi sederhana:

<input class="set-today" type="date">
<script type="text/javascript">
    window.onload= function() {
        document.querySelector('.set-today').value=(new Date()).toISOString().substr(0,10));
    }
</script>
gajam
sumber
1
@ GeorgeJempty Ini tidak jika waktu saat ini di UTC adalah hari yang berbeda dari hari saat ini. Ini akan mengembalikan tanggal saat ini dalam UTC, bukan di zona waktu lokal Anda.
ADJenks
@adjenks Heh Saya melihat bahwa ini adalah waktu yang tepat bagi saya untuk menguji, 10 menit hingga tengah malam
Dexygen
@adjenks Saya akhirnya mengeluarkan setengah lusin baris yang menghindari jebakan UTC dan sedikit meningkat pada beberapa jawaban jQuery / non-ES6 serupa yang ada: stackoverflow.com/a/54341296/34806
Dexygen
Jawaban memiliki ")" tambahan di akhir baris, dan paren asing di sekitar "Tanggal baru ()". Harus: document.querySelector('.set-today').value=new Date().toISOString().substr(0,10);
Kirby L. Wallace
0

Karena tidak ada metode default untuk menetapkan nilai tanggal hari ini, saya akan mengatakan ini harus bergantung pada aplikasi itu. Jika Anda ingin memaksimalkan pemaparan audiens Anda ke pemilih tanggal, maka gunakan skrip sisi server (PHP, ASP, dll.) Untuk menetapkan nilai default.

Namun, jika itu untuk konsol administrasi CMS, dan Anda tahu bahwa pengguna akan selalu memiliki JS di atau situs Anda tepercaya, maka Anda dapat menggunakan JS dengan aman untuk mengisi nilai default, sesuai jlbruno.

stslavik
sumber
0

Saya memiliki masalah yang sama dan saya memperbaikinya dengan JS sederhana. Input:

<input type="date" name="dateOrder" id="dateOrder"  required="required">

JS

<script language="javascript">
document.getElementById('dateOrder').value = "<?php echo date("Y-m-d"); ?>";
</script>

Penting: skrip JS harus berada di baris kode terakhir, atau setelah dimasukkan, karena jika Anda memasukkan kode ini sebelumnya, skrip tidak akan menemukan input Anda.

Marlon
sumber
2
Jika Anda masih menggunakan PHP, mengapa repot-repot dengan JavaScript ?
Blazemonger
0

Tidak ada metode standar dalam HTML itu sendiri untuk memasukkan tanggal hari ini ke dalam bidang input. Namun, seperti bidang input lainnya, ia akan menerima nilai.

Anda bisa menggunakan PHP untuk mengambil tanggal hari ini dan memasukkannya ke dalam bidang nilai elemen formulir.

<?php
    // Fetch the year, month and day
    $year = date(Y);
    $month = date(m);
    $day = date(d);

    // Merge them into a string accepted by the input field
    $date_string = "$year-$month-$day";

    // Send to the browser the input field with the value set with the date string
    echo "<input type='date' value='$date_string' />";
?>

Bidang nilai menerima format YYYY-MM-DD sebagai input sehingga cukup dengan membuat variabel $date_string dalam format yang sama dengan nilai input yang diterima dan mengisinya dengan tahun, bulan dan hari yang diambil dari tanggal hari ini dan nol! Anda memiliki tanggal pemilihan sendiri!

Semoga ini membantu :)

Edit:

Jika Anda ingin membuat field input bersarang dalam HTML daripada PHP, Anda bisa melakukan hal berikut.

<?php
    // Fetch the year, month and day
    $year = date(Y);
    $month = date(m);
    $day = date(d);

    // Merge them into a string accepted by the input field
    $date_string = "$year-$month-$day";
?>
<html>
    <head>...</head>
    <body>
        <form>
            <input type="date" value="<?php print($date_string); ?>" />
        </form>
    </body>
</html>

Saya menyadari pertanyaan ini ditanyakan beberapa waktu yang lalu (2 tahun yang lalu) tetapi masih butuh beberapa saat untuk menemukan jawaban yang pasti di internet, jadi ini berlaku untuk siapa saja yang mencari jawabannya kapan pun mungkin dan berharap itu sangat membantu semua orang :)

Edit Lainnya:

Hampir lupa, sesuatu yang telah menjadi masalah besar bagi saya di masa lalu selalu lupa untuk mengatur zona waktu default setiap kali membuat skrip dalam PHP yang menggunakan fungsi date ().

Sintaksnya adalah date_default_timezone_set(...);. Dokumentasi dapat ditemukan di sini di PHP.net dan daftar zona waktu yang didukung untuk disisipkan ke dalam fungsi dapat ditemukan di sini . Ini selalu mengganggu karena saya di Australia, semuanya selalu didorong mundur 10 jam jika saya tidak mengatur ini dengan benar karena defaultnya ke UTC + 0000 di mana saya membutuhkan UTC + 1000 jadi berhati-hatilah :)

SteppingHat
sumber
0

Terima kasih peter, sekarang saya mengubah kode saya.

<input type='date' id='d1' name='d1'>

<script type="text/javascript">
var d1 = new Date();
var y1= d1.getFullYear();
var m1 = d1.getMonth()+1;
if(m1<10)
    m1="0"+m1;
var dt1 = d1.getDate();
if(dt1<10)
dt1 = "0"+dt1;
var d2 = y1+"-"+m1+"-"+dt1;
document.getElementById('d1').value=d2;
</script>
Nikhil sHETH
sumber
3
Tolong, tolong, tolong jangan gunakan document.write dalam aplikasi nyata - ada begitu banyak masalah dengan menggunakannya.
Peter Hart
Peter, bisakah kau jelaskan apa masalahnya. kamu dapat ?
Nikhil sHETH
Peter, juga menyebutkan bagaimana Anda mendapatkan tanggal saat ini sebagai nilai default dalam tipe input = tanggal
Nikhil sHETH
1
Bukannya itu tidak berhasil, tetapi secara umum itu adalah praktik yang buruk untuk menggunakan document.write. Ada banyak alasan mengapa ini terjadi, berikut adalah beberapa contoh: stackoverflow.com/questions/802854/… Jika saya benar-benar harus melakukan ini dalam javascript pada klien, saya akan menggunakan id pada elemen dan dokumen. getElementById untuk mendapatkan elemen dan mengubahnya, mirip dengan beberapa jawaban lain di halaman ini.
Peter Hart
0

Dan bagi mereka yang menggunakan ASP VBScript

<%
'Generates date in yyyy-mm-dd format
Function GetFormattedDate(setDate)
strDate = CDate(setDate)
strDay = DatePart("d", strDate)
strMonth = DatePart("m", strDate)
strYear = DatePart("yyyy", strDate)
If strDay < 10 Then
  strDay = "0" & strDay
End If
If strMonth < 10 Then
  strMonth = "0" & strMonth
End If
GetFormattedDate = strYear & "-" & strMonth & "-" & strDay
End Function
%>

Dan kemudian di dalam tubuh, elemen Anda akan terlihat seperti ini

<input name="today" type="date" value="<%= GetFormattedDate(now) %>" />

Bersulang!

Ryan Dunphy
sumber
0

Bahkan setelah sekian lama, itu mungkin membantu seseorang. Ini adalah solusi JS sederhana.

JS

  let date = new Date();
  let today = date.toISOString().substr(0, 10);
  //console.log("Today: ", today);//test
  document.getElementById("form-container").innerHTML =
    '<input type="date" name="myDate" value="' + today + '" >';//inject field

HTML

 <form id="form-container"></form>

Solusi serupa berfungsi di Angular tanpa pustaka tambahan untuk mengonversi format tanggal. Untuk Angular (kode disingkat karena kode komponen umum):

//so in myComponent.ts 
//Import.... @Component...etc...
date: Date = new Date();
today: String; //<- note String
//more const ...
export class MyComponent implements OnInit {
   //constructor, etc.... 
   ngOnInit() {
      this.today = this.date.toISOString().substr(0, 10);
   }
}
//so in component.html 
<input type="date" [(ngModel)]="today"  />
StefaDesign
sumber
Ini terlalu rumit untuk hanya perlu menggunakan nilai default.
direformasi
Yang mana dari dua contoh independen yang Anda coba tunjukkan? Ini 4 baris kode dalam kedua contoh .... Contoh pertama adalah html murni + js jadi buat wadah dan salin kode tempel 3 barisnya jika Anda tidak menghitung komentar. Sama untuk contoh sudut yang menjadi alasan saya meninggalkan komentar. Tidak yakin apa yang Anda maksud ....
StefaDesign