Javascript 通过onclick更改日期字符串和DIV背景颜色

Javascript 通过onclick更改日期字符串和DIV背景颜色,javascript,onclick,Javascript,Onclick,我有这个脚本可以工作,但我需要更改日期字符串的格式以使其看起来不同。我现在得到:2012年4月10日星期二22:27:13 GMT-0700(PDT) 我需要日期字符串如下所示:2012年4月10日10:28 PM 我还需要更改在单击按钮时保存日期字符串输入的DIV背景 <form> <input name="theDate" size="50"> <input type="button" value="Insert date" onclick="this

我有这个脚本可以工作,但我需要更改日期字符串的格式以使其看起来不同。我现在得到:2012年4月10日星期二22:27:13 GMT-0700(PDT)

我需要日期字符串如下所示:2012年4月10日10:28 PM

我还需要更改在单击按钮时保存日期字符串输入的DIV背景

<form>

<input name="theDate" size="50">

<input type="button" value="Insert date" 
  onclick="this.form.theDate.value = new Date();">

</form>

退房

用于解析的轻量级(3.7k)javascript日期库, 操作和格式化日期

使用矩.js

var today = moment(new Date());
today.format("MMMM D, YYYY h:m A"); // outputs "April 11, 2012 12:44 AM"
您甚至可以在一行中完成:)

所以对于你的输入元素

<input type="button" value="Insert date" onclick="this.form.theDate.value = moment().format('MMMM D, YYYY h:m A');">


此外,值得一提的是结帐。我认为这两个库是相辅相成的。

您可以使用以下方法获得不同的“时间”-内容:

解决方案::D

var d = new Date(),
    y = d.getFullYear(),
    mo = d.getMonth(),
    da = d.getDate(),
    h = d.getHours(),
    m = d.getMinutes();

var time = m + " " + da + ", " + y + " " + h + ":" + m + ((h<12)?"AM":"PM");
var d=new Date(),
y=d.getFullYear(),
mo=d.getMonth(),
da=d.getDate(),
h=d.getHours(),
m=d.getMinutes();

var time=m+“”+da+”,“+y+“”+h+”:“+m+((h您可以使用
Date对象的
format
方法来根据您的喜好格式化日期(在
格式化程序中提供,我已为其附加了链接)

示例:

var d = new Date();
d.format('m/dd/yy');

有关更多信息,请参见…

您可以删除所需的零件-

警报(新日期().dayString('y','T');

返回值:(字符串)2012年4月11日凌晨1:58

String.prototype.padZero=函数(len,c){
var s=“”,c=c | |“0”,len=(len | | 2)-this.length;
而(s.lengthDate.parse('6/2/2009');
})();
Date.monthnames=[“一月”、“二月”、“三月”、“四月”、“五月”,
“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
Date.prototype.dayString=函数(wch,wch2){
var D=这,A,天,M,W;
wch=wch?wch.toLowerCase():'y';
M=日期、月份和时间;
W=日期。日期名称;
变量A=[W[D.getDay()],“”,M[D.getMonth()],“”,
D.getDate(),',',D.getFullYear();
if(wch.indexOf('s')!=-1){
A[0]=A[0]。子串(0,3);
A[2]=A[2]。子串(0,3);
}
如果(Date.ddmm | |/b/i.test(wch)){
A.拼接(2,3,A[4],A[3],A[2]);
}
如果(wch.indexOf('y')=-1)A.length=5;
if(wch.indexOf('d')=-1)A.拼接(0,2);
日=A.加入(“”);
如果(wch2)天+=''+D.时间串(wch2);
回归日;
}
Date.prototype.timeString=函数(秒){
var D=这,A;
秒=秒| |'';
var h=D.getHours();
var w=h12)h-=12;
如果(h==0)h=12,则为else;
A=[h,String(D.getMinutes()).padZero(2)];
如果(/s/i.test(sec))A[2]=String(D.getSeconds()).padZero(2);
如果(/ms/i.test(sec))A[3]=String(D.getmillizes()).padZero(3);
返回A.join(“:”)+w;
}

已经有很多类似的问题被问到了,例如我可以把它添加到onclick=“this.form.theDate.value=new Date();”当然可以!你只需要包括javascript库。我添加了矩.js/这对吗?onclick=“this.form.theDate.value=矩().format”(“MMMM D,YYYY h:ma”)”;是的,看起来不错。但是,双引号中有双引号…将其更改为:
onclick=“this.form.theDate.value=矩().format('MMMM D,YYYY h:ma');“
onclick=“this.form.theDate.value=矩().format('MMMM D,YYYY h:ma')天啊……做得很好,但你为什么不使用现有的库呢?我该如何称呼这个onclick?@Hristo-我在1998年写的,当时还没有很多javascript库。@kennebec…天哪,哈哈哈…太棒了!我在1998年读三年级:无论如何,请查看一下moment.js!它真的很整洁:)
var d = new Date(),
    y = d.getFullYear(),
    mo = d.getMonth(),
    da = d.getDate(),
    h = d.getHours(),
    m = d.getMinutes();

var time = m + " " + da + ", " + y + " " + h + ":" + m + ((h<12)?"AM":"PM");
var d = new Date();
d.format('m/dd/yy');
String.prototype.padZero= function(len, c){
    var s= "", c= c || "0", len= (len || 2)- this.length;
    while(s.length<len) s += c;
    return s + this;
}

Date.daynames= ['Sunday', 'Monday', 'Tuesday',
'Wednesday','Thursday', 'Friday', 'Saturday'];

Date.ddmm= (function(){
    return Date.parse('2/6/2009')>Date.parse('6/2/2009');
})();

Date.monthnames= ['January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September', 'October', 'November', 'December'];

Date.prototype.dayString= function(wch, wch2){
    var D= this, A, day, M, W;
    wch= wch? wch.toLowerCase():'y';
    M= Date.monthnames;
    W= Date.daynames;
    var A= [W[D.getDay()], ' ', M[D.getMonth()], ' ',
    D.getDate(), ', ', D.getFullYear()];
    if(wch.indexOf('s')!= -1){
        A[0]= A[0].substring(0, 3);
        A[2]= A[2].substring(0, 3);
    }
    if(Date.ddmm ||  /b/i.test(wch)){
        A.splice(2, 3, A[4], A[3], A[2]);
    }
    if(wch.indexOf('y')== -1) A.length= 5;
    if(wch.indexOf('d')== -1) A.splice(0, 2);
    day= A.join('');
    if(wch2) day+= ' '+D.timeString(wch2);
    return day;
}
Date.prototype.timeString= function(sec){
    var D= this, A;
    sec= sec || '';
    var h= D.getHours();
    var w= h<12? ' am':' pm';
    if(sec===sec.toUpperCase())w=w.toUpperCase();
    if(h>12) h-= 12;
    else if(h== 0) h= 12;
    A= [h, String(D.getMinutes()).padZero(2)];
    if(/s/i.test(sec)) A[2]= String(D.getSeconds()).padZero(2);
    if(/ms/i.test(sec)) A[3]= String(D.getMilliseconds()).padZero(3);
    return A.join(':')+w;
}