在JavaScript/Jquery中以DD-Mon-YYY格式获取当前日期

在JavaScript/Jquery中以DD-Mon-YYY格式获取当前日期,javascript,jquery,date,datetime,Javascript,Jquery,Date,Datetime,我需要获取javascript中的日期格式为'DD Mon YYYY'。 我问了一个问题,它被标记为重复 但是,问题中提供的答案是以“DD-MM-YYYY”格式获取当前日期,而不是“DD-MON-YYYY”。 其次,我没有使用datepicker插件 您能否帮助我,好像如何以“DD-Mon-YYYY”格式获取当前日期。DD-MM-YYYY只是其中一种格式。jquery插件的格式基于以下列表: 在chrome控制台中测试了以下代码: test = new Date() test.format('d

我需要获取javascript中的日期格式为'DD Mon YYYY'。 我问了一个问题,它被标记为重复

但是,问题中提供的答案是以“DD-MM-YYYY”格式获取当前日期,而不是“DD-MON-YYYY”。 其次,我没有使用datepicker插件


您能否帮助我,好像如何以“DD-Mon-YYYY”格式获取当前日期。

DD-MM-YYYY只是其中一种格式。jquery插件的格式基于以下列表:

在chrome控制台中测试了以下代码:

test = new Date()
test.format('d-M-Y')
"15-Dec-2014"
使用Moment.js库可以为您节省很多麻烦

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

DD Mon YYYY
的javascript中没有本机格式

您必须手动将其全部组合在一起

答案来源于:

//将新函数ToSortFormat()附加到Date()类的任何实例
Date.prototype.toShortFormat=函数(){
让monthNames=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”,
“九月”、“十月”、“十一月”、“十二月”];
let day=this.getDate();
让monthIndex=this.getMonth();
让monthName=monthNames[monthnamex];
让year=this.getFullYear();
返回`${day}-${monthName}-${year}`;
}
//现在可以声明任何日期对象
let anyDate=新日期(1528578000000);
//它可以用上面定义的自定义格式表示自己。
console.log(anyDate.toShortFormat());//2018年6月10日
让今天=新日期();

console.log(today.toShortFormat());//今天的日期
使用日期格式dd-MM-yy。它的输出类似于:2014年12月16日。

我制作了一个自定义日期字符串格式函数,您可以使用它

var  getDateString = function(date, format) {
        var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        getPaddedComp = function(comp) {
            return ((parseInt(comp) < 10) ? ('0' + comp) : comp)
        },
        formattedDate = format,
        o = {
            "y+": date.getFullYear(), // year
            "M+": months[date.getMonth()], //month
            "d+": getPaddedComp(date.getDate()), //day
            "h+": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour
             "H+": getPaddedComp(date.getHours()), //hour
            "m+": getPaddedComp(date.getMinutes()), //minute
            "s+": getPaddedComp(date.getSeconds()), //second
            "S+": getPaddedComp(date.getMilliseconds()), //millisecond,
            "b+": (date.getHours() >= 12) ? 'PM' : 'AM'
        };

        for (var k in o) {
            if (new RegExp("(" + k + ")").test(format)) {
                formattedDate = formattedDate.replace(RegExp.$1, o[k]);
            }
        }
        return formattedDate;
    };
因此,要设置此日期的格式,请编写:-

var formattedDate = getDateString(new Date(date), "d-M-y")
您可以使用和查找接近DD-mmm-YYYY的格式(提示:“en-GB”;只需将空格替换为“-”)

const date=新日期();
const formattedDate=date.toLocaleDateString('en-GB'{
日:“数字”,月:“短”,年:“数字”
}).替换(//g,'-');
console.log(格式化日期)
/*
#无参数
返回格式为DD-MM-YYYY的日期
*/
函数now()
{
var d=新日期();
变量月份=d.getMonth()+1;
var day=d.getDate();
var输出=(天)
//输出:2016年9月1日18:30:00
var today=新日期();
var formattedtoday=today.getDate()+'-'+(today.getMonth()+1)+'-'+today.getFullYear();
警报(今日格式化);
const monthNames=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var currDate=新日期();
var newDate=currDate.toLocaleDateString();
var splitNewDate=newDate.split('/');
var formatDate=splitNewDate[1]+'-'+monthNames[splitNewDate[0]+'-'+splitNewDate[2];

console.log(formattate);
传递数据changeFormate(2020年7月15日)

changeFormate(日期){
月份名称=['一月'、'二月'、'三月'、'四月'、'五月'、'六月'、'七月'、'八月'、'九月'、'十月'、'十一月'、'十二月'];
let IncomingDateChenge:any=新日期(日期);
让incomingDay=incomingDateChnge.getDate();
让incomingMonth=incomingDateChnge.getMonth();
让incomingYear=incomingDateChnge.getFullYear();
如果(收入日<10){
收入日='0'+收入日;
}
IncomingDateChenge=incomingDay+“”+月\名称[incomingMonth]+“”+incomingYear;
返回入息日期;
}

可以使用
toLocaleDateString


const date=新日期();
const formattedDate=date.toLocaleDateString('en-GB'{
日:“2位”,月:“短”,年:“数字”
}).替换(//g,'-');
文件。写入(格式化日期);
使用Intl对象(或通过ToLocalString)有点问题,但可以使用和手动将零件按顺序排列,例如:

函数formatDate(日期=新日期()){
设{day,month,year}=new Intl.DateTimeFormat('en'{
日期:'2位',
月:“短”,
年份:“数字”
}).FormatTopParts(日期)。减少((附件,部分)=>{
if(part.type!=“literal”){
acc[零件类型]=零件值;
}
返回acc;
},Object.create(null));
返回`${day}-${month}-${year}`;
}

console.log(formatDate());
这里有一个简单的解决方案,使用TypeScript:

  convertDateStringToDate(dateStr) {
    //  Convert a string like '2020-10-04T00:00:00' into '4/Oct/2020'
    let months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    let date = new Date(dateStr);
    let str = date.getDate()
                + '/' + months[date.getMonth()]
                + '/' + date.getFullYear()
    return str;
  }

(是的,我知道问题是关于JavaScript的,但我肯定我不是唯一一个看到本文的Angular开发者!)

是的,我了解日期格式,但如何将当前日期转换为dd mon yyyy,例如我希望获得2014年12月15日的当前日期格式。通常这应该可以工作(在控制台中测试):test=new date();test.format('d-M-Y')同意。这很好,但在控制台执行时,format不是函数。错误:test.format不是函数test=new Date()test.format('d-M-Y'))
这是JS而不是Java这不是一个答案。请发布一个有效的适用答案这是一个非常低质量的答案:请解释您的代码的作用。此外,此代码不带参数,但需要一个全局变量
d
。最后,它没有回答OPs问题:YYYY/MM/DD与DD-Mon-YYY-th不一样请求的是。此答案不符合OP的要求。所需格式为dd-Mon-yyyyy而不是dd-MM-yyyyyyy,而这可能会回答问题。最好添加一些说明,说明此答案如何帮助解决此问题。请阅读以了解更多信息……或者您可以这样做。您不需要滚动自己的日期函数。日期对象已经有了一个。谢谢,上面的答案在我的地区不起作用,但是你的答案很好!它也会起作用,而且在什么时候不需要。是的。还有一个非常好的
date fns
库。我的意思是,对于今天的
npm
软件包来说,你自己开发几乎没有意义。有大量的日期库,如果有答案的话每一个都是?很多都是
/*
  #No parameters
  returns a date with this format DD-MM-YYYY
*/
function now()
{
  var d = new Date();
  var month = d.getMonth()+1;
  var day = d.getDate();

  var output = (day<10 ? '0' : '') + day + "-" 
              + (month<10 ? '0' : '') + month + '-'
              + d.getFullYear();

  return output;
}
var date = new Date();

console.log(date.toJSON().slice(0,10).replace(new RegExp("-", 'g'),"/" ).split("/").reverse().join("/")+" "+date.toJSON().slice(11,19));
const date = new Date();

date.toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }))
  changeFormate(date) {
let month_names = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
let incomingDateChnge: any = new Date(date);
let incomingDay = incomingDateChnge.getDate();
let incomingMonth = incomingDateChnge.getMonth();

let incomingYear = incomingDateChnge.getFullYear();
if (incomingDay < 10) {
  incomingDay = '0' + incomingDay;
}

incomingDateChnge = incomingDay + ' ' + month_names[incomingMonth] + ' ' + incomingYear;
return incomingDateChnge;
 }
  convertDateStringToDate(dateStr) {
    //  Convert a string like '2020-10-04T00:00:00' into '4/Oct/2020'
    let months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    let date = new Date(dateStr);
    let str = date.getDate()
                + '/' + months[date.getMonth()]
                + '/' + date.getFullYear()
    return str;
  }