正如标题所说,我想要当前的系统时间。
我知道,使用Date()可以给我当前的时间,但这不一定是系统时间,所以它没有帮助。
我知道我可以使用http请求从某些后端服务获取系统时间,但问题是我希望动态更新系统时间(如果系统时间更改-我希望我的网页更改时间,即使我不刷新页面)。
因此,如果有一种方法来实现这一点,只使用角度-它将更容易。
是否可以这样做呢?
示例:
我正在使用Linux机器,现在我将当前日期设置为2022年2月1日,03:12:20,如下所示:
sudo date -s "1 FEB 2022 03:12:20" 所以现在我希望我的网页能显示同样的日期和时间--2022年2月1日03:12:20。
发布于 2022-02-20 11:21:52
您可以使用rxjs操作符和map。
date$=timer(0,1000).pipe(map(_=>new Date()))
{{date$|async}}但这只会告诉你客户的日期。如果需要服务器中的日期,则需要调用服务器进行更正。
这样你就可以有一些
incr:number=0;
date$=timer(0,1000).pipe(
switchMap((i:number)=>{
if (i%10==0) //you can indicate here when you want "check"
//the date in server,e.g. each 10 seconds
{
return this.service.getDate().pipe(tap(x=>{
this.incr=x.getTime()-new Date().getTime()}))
}
return of(new Date(new Date().getTime()+this.incr))
}))发布于 2022-02-20 11:06:33
没有对其进行测试,但是new Date()应该总是给您系统时间,这意味着您可以每秒钟获得一次new Date()。
这大致翻译为:
如果没有给定参数,则构造函数将创建一个日期对象,其中包含当前系统时区的日期和时间。
因此,解决办法是:
document.setInterval(() => console.info(new Date()), 1000);或者更愤怒(使用rxjs而不是香草)
timer(1000).subscribe(() => console.info(new Date());https://stackoverflow.com/questions/71193193
复制相似问题