Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 存储过期日期/时间戳的正确方法是什么?_Javascript_Datetime - Fatal编程技术网

Javascript 存储过期日期/时间戳的正确方法是什么?

Javascript 存储过期日期/时间戳的正确方法是什么?,javascript,datetime,Javascript,Datetime,我正在建立一个系统,需要有过期的帖子,我需要比较两者,以确定它是否过期。我使用Meteor,所以我可以在客户端或服务器端执行此操作(我假设后者是首选) 查看MDN,我不太确定如何存储时间戳以及使用什么格式。最简单的方法似乎是对当前时间使用Date.now(),对过期时间戳使用30天(毫秒)。有更好的方法吗 postModel = { id: String createdOn: Date.now() expiresOn: Date.now() + 2592000000 // 30day

我正在建立一个系统,需要有过期的帖子,我需要比较两者,以确定它是否过期。我使用Meteor,所以我可以在客户端或服务器端执行此操作(我假设后者是首选)

查看MDN,我不太确定如何存储时间戳以及使用什么格式。最简单的方法似乎是对当前时间使用
Date.now()
,对过期时间戳使用30天(毫秒)。有更好的方法吗

postModel = {
  id: String
  createdOn: Date.now()
  expiresOn: Date.now() + 2592000000 // 30days
}


post = getPost()

 if (post.expires is after now) {
   // throw expired error
 }

您应该以可配置的方式存储过期时间跨度,而不是实际日期。这可以是一个配置文件、数据库或其他一些持久性机制。对于您的业务实体,您只需要存储创建时间。这样,可以在客户端或服务器端轻松计算过期时间。硬编码值(如过期)不是一个好主意


此外,您应该使用UTC而不是本地时间。永远为成功而计划

为什么不处理日期对象呢?只需存储创建时间,然后测试它是否在30天前。我不确定30天后如何创建日期对象。任何建议都将不胜感激。谢谢,保罗,这是一个很好的观点。就计算而言,它似乎适用于扩散。我通常对使用日期感到困惑,是否有一个好的来源可以了解更多关于这方面的信息?好问题。应该有一个来源。。我的建议完全来自经验。这里有一些经验法则:如果您硬编码一个表示业务规则的值,请不要这样做。如果它可以很容易地计算,那么不要存储它。始终使用UTC和yes,这将导致您必须知道用户的时区。请记住,日期和时间可以是数据或元数据,也可以是两者。您创建的DT实际上都是数据,但在您将其转换为用户的TZ之前,它不会是数据。