gpt4 book ai didi

显示昨天和今天日期的 Javascript 代码

转载 作者:IT王子 更新时间:2023-10-29 03:09:47 25 4
gpt4 key购买 nike

如何在我的文本框中显示昨天的日期,同时显示今天的日期?

我有这个 home.php,我在其中显示昨天的日期(用户不能修改此只读)和今天的日期(用户必须输入今天的日期)。当明天到来并且用户访问 home.php 时,他/她将看到昨天输入的日期,并将再次输入明天的日期。

例如:第 1 天(2011 年 3 月 30 日)昨天的日期:2011 年 3 月 29 日。(不可编辑的文本框)输入今天的日期:(我会输入..)2011 年 3 月 30 日。

第 2 天(2011 年 3 月 31 日)昨天的日期:2011 年 3 月 30 日。(不可编辑的文本框)自动,这将在点击 home.php 时出现输入今天的日期:(我会输入..)2011 年 3 月 31 日。

等等..

我需要一个不会接受错误日期格式的验证,格式必须是:01-Mar-11这个怎么做? :(

最佳答案

昨天的日期就是今天的日期减一,所以:

var d = new Date();
d.setDate(d.getDate() - 1);

如果今天是 4 月 1 日,则设置为 4 月 0 日,即转换为 3 月 31 日。

因为你还想做一些其他的事情,这里有一些函数可以做到:

// Check if d is a valid date
// Must be format year-month name-date
// e.g. 2011-MAR-12 or 2011-March-6
// Capitalisation is not important
function validDate(d) {
var bits = d.split('-');
var t = stringToDate(d);
return t.getFullYear() == bits[0] &&
t.getDate() == bits[2];
}

// Convert string in format above to a date object
function stringToDate(s) {
var bits = s.split('-');
var monthNum = monthNameToNumber(bits[1]);
return new Date(bits[0], monthNum, bits[2]);
}

// Convert month names like mar or march to
// number, capitalisation not important
// Month number is calendar month - 1.
var monthNameToNumber = (function() {
var monthNames = (
'jan feb mar apr may jun jul aug sep oct nov dec ' +
'january february march april may june july august ' +
'september october november december'
).split(' ');

return function(month) {
var i = monthNames.length;
month = month.toLowerCase();

while (i--) {
if (monthNames[i] == month) {
return i % 12;
}
}
}
}());

// Given a date in above format, return
// previous day as a date object
function getYesterday(d) {
d = stringToDate(d);
d.setDate(d.getDate() - 1)
return d;
}

// Given a date object, format
// per format above
var formatDate = (function() {
var months = 'jan feb mar apr may jun jul aug sep oct nov dec'.split(' ');
function addZ(n) {
return n<10? '0'+n : ''+n;
}
return function(d) {
return d.getFullYear() + '-' +
months[d.getMonth()] + '-' +
addZ(d.getDate());
}
}());

function doStuff(d) {

// Is it format year-month-date?
if (!validDate(d)) {
alert(d + ' is not a valid date');
return;
} else {
alert(d + ' is a valid date');
}
alert(
'Date in was: ' + d +
'\nDay before: ' + formatDate(getYesterday(d))
);
}


doStuff('2011-feb-08');
// Shows 2011-feb-08 is a valid date
// Date in was: 2011-feb-08
// Day before: 2011-feb-07

关于显示昨天和今天日期的 Javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com