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

z31licg0  于 2023-06-20  发布在  Java
关注(0)|答案(7)|浏览(119)

如何显示昨天的日期在我的文本框昨天的日期,并在同一时间,今天的日期在?
我有这个home.php,我显示昨天的日期(用户不能修改这个只读)和今天的日期(用户必须输入今天的日期)。当明天到来时,用户访问home .php s/他将看到昨天输入的日期,并将再次输入明天的日期。
例如:Day 1(2011年3月30日)昨天的日期:2011年3月29日(不可编辑的文本框)输入今天的日期:2011年3月30日
第二天(2011年3月31日)昨天的日期:2011年3月30日(不可编辑的文本框)自动,这将出现在点击home.php输入今天的日期:2011年3月31日
等等。
我需要一个验证,不会接受错误的日期格式和格式必须是:01- 01 -11怎么做:(

9jyewag0

9jyewag01#

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

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
r1zhe5dt

r1zhe5dt2#

一个内衬:

var yesterday = new Date(Date.now() - 864e5); // 864e5 == 86400000 == 24*60*60*1000
3zwtqj6y

3zwtqj6y3#

昨天的日期可以计算为,

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

zwghvu4y4#

在javascript中获取昨天的日期

你必须运行代码并检查它的输出

var today = new Date();
    var yesterday = new Date(today);
    
    yesterday.setDate(today.getDate() - 1);
    console.log("Original Date : ",yesterday);

    const monthNames = [
  "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
];
    var month = today.getMonth() + 1
    yesterday = yesterday.getDate() + ' ' + monthNames[month] + ' ' + yesterday.getFullYear()
   
    console.log("Modify Date : ",yesterday);
i34xakig

i34xakig5#

昨天的日期可以计算为:-

let now = new Date();
    var defaultDate = now - 1000 * 60 * 60 * 24 * 1;
    defaultDate = new Date(defaultDate);
6qftjkof

6qftjkof6#

如果有人需要一行代码比这也是正确的

const yesterday = new Date(new Date().setDate(new Date().getDate() - 1));

快乐编码!

iqxoj9l9

iqxoj9l97#

我开发了一个简单而有效的函数来返回以前的日期。该函数接受getTime()值并返回一个整数,该整数可被传递以创建一个新的日期对象。下面是代码:

function getPrevDate(val: number): number {
        const aDay = 24 * 60 * 60 * 1000;
        const last = new Date().getTime() - val * aDay;
        return last;
    }
  
        const last = getPrevDate(5);

        console.log(new Date(last), new Date());

相关问题