1

我正在使用以下函数来获取随机日期。我正在获取 MM/DD/YYYY 格式的日期,任何人都可以帮助我如何获取 DD/MM/YYYY 格式的日期。

function randomDate(date1, date2) {
  function randomValueBetween(min, max) {
    return Math.random() * (max - min) + min;
  }
  var date1 = date1 || '01-01-1970'
  var date2 = date2 || new Date().toLocaleDateString()
  date1 = new Date(date1).getTime()
  date2 = new Date(date2).getTime()
  if (date1 > date2) {
    return new Date(randomValueBetween(date2, date1)).toLocaleDateString()
  } else {
    return new Date(randomValueBetween(date1, date2)).toLocaleDateString()

  }
}
var date = randomDate('02/13/2020', '01/01/2018');

console.log(date)

4

3 回答 3

1

拆分 / 并重新构建。试试看:

var oldDate = '02/13/2020';

function formatDate (date){
  var splittedDate = date.split('/');
  return splittedDate[1]+'/'+ splittedDate[0]+'/'+splittedDate[2];
}

console.log(formatDate(oldDate));

于 2020-12-03T14:29:05.063 回答
0

只需强制使用欧洲语言环境

const randomValueBetween = (min, max) => Math.random() * (max - min) + min;

function randomDate(date1, date2) {
  var date1 = date1 || '01-01-1970';
  var date2 = date2 || new Date();
  date1 = new Date(date1).getTime();
  date2 = new Date(date2).getTime();
  return date1 > date2 ? new Date(randomValueBetween(date2, date1)).toLocaleDateString("dk-DK") :
                         new Date(randomValueBetween(date1, date2)).toLocaleDateString("dk-DK")
}
var date = randomDate('02/13/2020', '01/01/2018');
console.log(date)
date = randomDate('02/13/2020');
console.log(date)
date = randomDate();
console.log(date)

于 2020-12-03T14:30:43.113 回答
0

通常,通过将功能丰富的Date对象保留到最后一刻来进行编码更加灵活。在不同的浏览器语言环境中,toLocaleDateString的行为也不同。字符串并不总是您所期望的。

function randomDate(date1, date2) {
  function randomValueBetween(min, max) {
    return Math.random() * (max - min) + min;
  }
  var date1 = date1 || '01-01-1970'
  var date2 = date2 || new Date().toLocaleDateString()
  date1 = new Date(date1).getTime()
  date2 = new Date(date2).getTime()

  // Note: modify the function to return Date instead of string
  if (date1 > date2) {
    return new Date(randomValueBetween(date2, date1));
  } else {
    return new Date(randomValueBetween(date1, date2));
  }
}

// with javascript's Date as input, you can freely reformat
// the output with Date.prototype.* methods.
function formatDate(date) {
  let year = date.getFullYear();
  let month = date.getMonth() + 1 + "";
  let day = date.getDate() + "";
  return day.padStart(2, "0") + "/" + month.padStart(2, "0") + "/" + year;
}

var date = formatDate(randomDate('02/13/2020', '01/01/2018'));
console.log(date)

于 2020-12-03T14:34:55.470 回答