如何在Javascript中获取当前格式化的日期dd/mm/yyyy并将其附加到输入框中

434

我想要在一个隐藏的HTML标签中添加当前日期,以便它可以被发送到服务器:

<input type="hidden" id="DATE" name="DATE" value="WOULD_LIKE_TO_ADD_DATE_HERE">

如何在VALUE属性中添加格式化日期?


4
首先,不要混淆Java和Javascript(甚至不要将Java和Script分开拼写!)。它们是完全不同的编程语言。 - Gilberto Torrezan
你需要客户端的本地日期吗?使用服务器的日期可能是一个选项吗? - gparis
55
(new Date()).toLocaleDateString('en-GB') 就是您需要的全部,可以按照 OP 的问题获取英国格式的日期。 - BadHorsie
new Date().toLocaleDateString().padStart(10, '0') - iPzard
不要这样做。服务器知道当前的日期和时间,不应该信任客户端发送的值,因为轻而易举地修改隐藏输入的值。 - Paul
7个回答

700

我希望这就是你想要的:

const today = new Date();
const yyyy = today.getFullYear();
let mm = today.getMonth() + 1; // Months start at 0!
let dd = today.getDate();

if (dd < 10) dd = '0' + dd;
if (mm < 10) mm = '0' + mm;

const formattedToday = dd + '/' + mm + '/' + yyyy;

document.getElementById('DATE').value = formattedToday;

如何在JavaScript中获取当前日期?


15
对于大多数用途,将最后一行替换为“return today;”。 - sitesbyjoe
37
这很有帮助,但也证实了Javascript在返回格式化日期方面效率极低。不可思议的是要写超过一行代码来完成这个任务… - jlbriggs
213
new Date(Date.now()).toLocaleString(); 可以翻译为“将当前时间转换为日期格式并输出字符串形式”。 - Oded Breiner
29
date.toLocaleDateString('en-GB') - Sakshi Nagpal
40
new Date(Date.now()).toLocaleString().split(',')[0] 可以用来获取当前日期的格式为 dd/mm/yyyy。 - Andrew Hill
显示剩余15条评论

248

我诚恳建议您使用moment.js。只需下载moment.min.js,然后使用此代码片段以您想要的任何格式获取日期:

<script>
$(document).ready(function() {

     // set an element
     $("#date").val( moment().format('MMM D, YYYY') );

     // set a variable
     var today = moment().format('D MMM, YYYY');

});
</script>

使用以下图表来选择日期格式:

enter image description here


1
JavaScript中所有日期显示问题的简单而有效的解决方案 - Jakki
2
你可以像这样解析日期:moment('26/04/2016', 'DD/MM/YYYY').format('YYYY-MM-DD'); - WoodyDRN
42
顺便说一句,moment.js 不是一个小型库。 - Murhaf Sousli
1
new Date().toJSON().slice(0,10).split('-').reverse().join('/') 对我很有效。- Sasikumar - Sasikumar
4
对于那些希望在占用空间更小的前提下获得相似功能的人来说,Day.js是一个很好的选择!https://www.npmjs.com/package/dayjs - Lewis Donovan
显示剩余6条评论

152
<input type="hidden" id="date"/>
<script>document.getElementById("date").value = new Date().toJSON().slice(0,10)</script>

50
d.toJSON().slice(0,10).split('-').reverse().join('/') - Gaurav
15
对于那些需要以 ISO 格式显示日期的人,除了 @Gaurav 的解决方案外,另一个选择是 new Date().toJSON().slice(0,10).replace(/-/g,'/') - TCN
6
2023年3月21日 - Pranav Singh
3
date.toLocaleDateString('en-GB'); - Sakshi Nagpal
20
将日期格式化为dd/mm/yyyy: new Date().toJSON().slice(0,10).split('-').reverse().join('/') - Hassan ALAMI
显示剩余7条评论

4

在JavaScript中获取当前日期/时间:

var date = new Date();

如果需要方便服务器端解释的毫秒,请使用
var value = date.getTime();

如果需要将日期格式化为用户可读的字符串,请参阅此处

然后只需写入隐藏字段:

document.getElementById("DATE").value = value;

或者只需 document.getElementById('DATE').value = (new Date()).getTime(); - jbyrd
5
new Date().toJSON().slice(0,10).split('-').reverse().join('/') 对我来说很有效。 - Sasikumar

2
通过使用value属性:
var today = new Date();
document.getElementById('DATE').value += today;

1

使用DOM的getElementById方法:

document.getElementById("DATE").value = "你的日期";

可以使用Date类创建日期:

d = new Date();

(专业提示:安装JavaScript控制台,如Chrome或Firefox的Firebug扩展程序。它使您能够玩转DOM和JavaScript)


-1

您可以通过编辑元素的 .value 属性来编辑其 value 值。

document.getElementById('DATE').value = 'New Value';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接