如何在Javascript而不是用户PC的日期,月份和年份中获取当前日期,月份和年份?

时间:2015-01-08 07:00:04

标签: javascript date

如何在Javascript中获取当前日期,月份和年份。我正在使用JS getFullYear()对象的getMonth()Date函数。但是这些功能会返回我PC的年份和月份。如果我将PC的日期更改为较旧或即将到来的日期,则这些功能将返回这些月份和年份。

无论用户PC显示的日期如何,我如何获得当前日期,月份和年份?

5 个答案:

答案 0 :(得分:4)

如果您的代码缺少可靠的来源(例如已知的NTP服务器),那么您将受到本地计算机的支配。

即使你 尝试去受信任的来源,本地机器也可以通过捕获你的TCP流量来破坏它。

而且,即使您创建了使用加密来提供正确日期和时间的自己的受信任计算机,本地计算机也可以通过更改JavaScript来破坏它。

最重要的是,它是一场军备竞赛,而且几乎可以肯定你可以保护你的代码免受所有事情的侵害。也许这可能是实际思考为什么首先需要准确的日期。

如果我们知道这一点,我们可能会在您目前所处的框外提供建议。表格中的问题太多了"我如何以Y方式做X?&#34 ;折扣大量非Y潜在解决方案: - )

答案 1 :(得分:1)

JavaScript无法通过魔法发挥作用。它所具有的日期的唯一指示是它运行的机器的日期。

答案 2 :(得分:0)

简而言之,如果您只需要一个月和一年,您可以在服务器级别构建datetime对象并将其作为字符串并从该变量放入javascript,您可以再次重建javascript日期对象,您可以拉动getyear并获取您需要的任何内容

答案 3 :(得分:0)

我认为你可以做这样的事情

var ds = ... // Some ajax call to server 
var d = new Date(ds);

在您约会之后,您可以轻松获得从日期开始的月份和年份

答案 4 :(得分:0)

您没有提及您的服务器端语言,但我在 Grails

中解决了这个问题
<script>
var serverDate=new Date(${new Date().getTime()});
//use serverDate
</script>

正如您所看到的,${new Date().getTime()}是在服务器端执行的Grails代码,因此它的值将类似于1420700836298(datetime),然后var serverDate=new Date(1420700836298);将在客户端执行;显然serverDate将是日期对象根据服务器时间。

因此,您的任务是将${new Date().getTime()}替换为服务器端lang。

N.B这不是ajax调用,它只执行一次;当页面第一次加载时。