日期功能 [英] date functions

查看:51
本文介绍了日期功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

两个问题:


我使用


var date1 = new Date();


来获取今天的日期。但是我如何才能获得昨天的约会?


此外我使用


var ydat = date1.getYear();

var mdat = date1.getMonth()+ 1;

var hdat =" 0" + date1.getDate();

var ddat = hdat.substr( htag.length-2);

var datum = ydat +" -0" + mdat +" - " + ddat;


获取一个像2004-06-01的字符串

有没有更简单的格式化日期的方法?


Paul Ettl
www.paul.ettl.at


Two questions:

I use

var date1 = new Date();

to get todays date. But how can I get yesterdays date?

Furthermore I use

var ydat = date1.getYear();
var mdat = date1.getMonth()+1;
var hdat = "0"+date1.getDate();
var ddat = hdat.substr(htag.length-2);
var datum=ydat+"-0"+mdat+"-"+ddat;

to get a string like 2004-06-01

Is there a easier way to format the date?

Paul Ettl
www.paul.ettl.at


推荐答案

Paul J. Ettl于2004年6月1日在comp.lang.javascript中写道
Paul J. Ettl wrote on 01 jun 2004 in comp.lang.javascript:
今天约会。但是我怎么能得到昨天的约会?


忘记夏令时间的变化,这会让您在1天前获得同样的时间:


var D =新日期()

D.setDate(D.getDate() - 1)


提醒(D)

是否有更简单的方式来格式化日期?
to get todays date. But how can I get yesterdays date?
Forgetting summer time changes this gives you same time 1 day earlier:

var D = new Date()
D.setDate(D.getDate()-1)

alert(D)
Is there a easier way to format the date?



函数LZ(x){return(x< 0 || x> = 10?"":" 0")+ x}

var D = new Date();

D = D.getFullYear()+'' - ''+ LZ(D.getMonth()+ 1)+'' - ''+ LZ(D。 getDate())


提醒(D)


全部来自John Stockton的页面:


< http://www.merlyn.demon.co.uk/js-dates.htm>

-

Evertjan。

荷兰。

(请将x''es更改为我的电子邮件地址中的点数)


function LZ(x) { return (x<0||x>=10?"":"0") + x }
var D = new Date() ;
D = D.getFullYear()+''-''+LZ(D.getMonth()+1)+''-''+LZ(D.getDate())

alert(D)

all from John Stockton''s pages:

<http://www.merlyn.demon.co.uk/js-dates.htm>
--
Evertjan.
The Netherlands.
(Please change the x''es to dots in my emailaddress)


Paul J. Ettl写道:
Paul J. Ettl wrote:
我使用

var date1 = new Date();

获取今天的日期。但是我怎么能得到昨天的约会?


var dY yesterday = new Date(new Date()。setDate(-1));


(至少在Mozilla / 5.0中有效)和IE 6.0 Win。)

此外我使用

var ydat = date1.getYear();
var mdat = date1.getMonth()+ 1;
var hdat =" 0" + date1.getDate();
^^^^ var ddat = hdat.substr(htag.length-2);
var datum = ydat +" -0" + mdat +" - " + ddat;
^^

你总是连接起来,所以你可以

结束2004-012-031之类的东西。

到得到像2004-06-01这样的字符串

是否有更简单的格式化日期的方法?


取决于你的意思。肯定有一个*更好的方式:


//帮手方法


功能领先零(

/ * * @optional string * / s,

/ ** @optional number * / n)

/ **

* @partof

* http://pointedears.de/scripts/string.js

* @param s

*输入字符串。如果省略且调用对象

*具有数字< code>长度< / code>使用其toString()方法的

*结果。

* @param n

*结果字符串的长度。默认值为1,

*即如果输入字符串为空,则为0。返回。

* @returns带有前导零的输入字符串,以便

*其长度为@ {(n)}< / code> ;.

* /

{

if(this.length!=" undefined"

&&!isNaN(this .length)

&& typeof s ==" undefined")

{

s = this;

}


if(typeof s!=" string")

{

s = s.toString();

}


while(s.length< n)

{

s + =" 0 QUOT; + s;

}


返回s;

}

String.prototype.leadingZero = LeadingZero;


//特色代码


函数date_ymd(d)

{

if(!(d instanceof Date))

{

if(this instanceof Date)

{

d = this;

}

else

{

d = new Date(d);

}

}


var y = d.getFullYear? d.getFullYear():d.getYear();

if(y <1900)

{
$ b $ + = 1900;

}


返回(y

+" - " + leadingZero(d.getMonth + 1,2)
+" - " + leadingZero(d.getDate(),2));

}

Date.prototype.ymd = date_ymd;


var datum = new Date()。ymd();
www.paul.ettl.at




这应该是签名的一部分,用仅包含
的行分隔
" - " (dashDashSpace)。否则重复发布此消息可能会被视为垃圾邮件。

PointedEars



This should be part of a signature, delimited with a line containing only
"-- " (dashDashSpace). Otherwise repeated posting of this could be
considered spam.
PointedEars


Thomas''PointedEars''Lahn< ;宝********* @ nurfuerspam.de>写道:
Thomas ''PointedEars'' Lahn <Po*********@nurfuerspam.de> writes:
Paul J. Ettl写道:
var dY yesterday = new Date(new Date()。setDate(-1));

(至少在Mozilla / 5.0和IE 6.0 Win中工作。)
Paul J. Ettl wrote: var dYesterday = new Date(new Date().setDate(-1));

(Works at least in Mozilla/5.0 and IE 6.0 Win.)




不。它总是成为上个月的倒数第二天,

,这永远不会是昨天。


如果你坚持在一条线上做,你可以使用

var昨天=新日期(新日期()。setDate(新日期()。getDate() - 1));

或者只是这样做:

var昨天=新日期();

昨天.setDate(yesterday.getDate() - 1);


/ L $ / $
-

Lasse Reichstein Nielsen - lr*@hotpop.com

DHTML死亡色彩:< URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>

''没有判断的信仰只会降低精神神圣。' '



Nope. It always becomes the next-to-last day of the previous month,
which can never be yesterday.

If you insist on doing it on one line, you can use
var yesterday = new Date(new Date().setDate(new Date().getDate()-1));
Or just do:
var yesterday = new Date();
yesterday.setDate(yesterday.getDate()-1);

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
''Faith without judgement merely degrades the spirit divine.''


这篇关于日期功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆