Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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 - Fatal编程技术网

Javascript中的精确年龄计算

Javascript中的精确年龄计算,javascript,Javascript,想象一下这个场景——我的基于javascript的web应用程序允许用户购买保险单,全球用户都可以访问它。在此应用程序中,准确的年龄计算至关重要,因为保险费是根据年龄计算的。年龄的计算方法如下- Age = Current date (Pacific timezone) - User's Date of birth 我知道我不能使用javascript的local Date()对象来计算用户的年龄,因为这会返回本地系统时间,如果用户的系统时间不正确或用户位于不同的时区,年龄计算将不准确 我想知

想象一下这个场景——我的基于javascript的web应用程序允许用户购买保险单,全球用户都可以访问它。在此应用程序中,准确的年龄计算至关重要,因为保险费是根据年龄计算的。年龄的计算方法如下-

Age = Current date (Pacific timezone) - User's Date of birth
我知道我不能使用javascript的local Date()对象来计算用户的年龄,因为这会返回本地系统时间,如果用户的系统时间不正确或用户位于不同的时区,年龄计算将不准确

我想知道解决这个问题的最佳方法。我应该在服务器上创建一个返回当前太平洋日期的web服务吗

请分享您的意见


提前谢谢

除非你的保险费每小时或每天都在上涨,否则这里的时区差异似乎不太可能显著。(如果是这样,我不想要你的保险。)但是如果你不能信任用户的本地时钟——你不能——你不能在客户端javascript中做到这一点。它必须在服务器端完成


(当然,对于任何形式的验证都是如此——为了方便用户,在客户端进行验证,然后再在服务器上进行验证,以防止用户胡闹。)

除非您的保险费每小时或每天都在上涨,否则这里的时区差异似乎不太可能显著。(如果是这样,我不想要你的保险。)但是如果你不能信任用户的本地时钟——你不能——你不能在客户端javascript中做到这一点。它必须在服务器端完成


(当然,这对于任何表单验证都是正确的——为了方便用户,在客户机上进行验证,然后在服务器上再次进行验证,以防止用户胡闹。)

您缺少一条重要信息。用户的出生地。将用户当前的本地时间减少到您的本地时间只会有助于消除今天日期的潜在差异。要使年龄精确到+/- 1天,你还必须考虑他们出生地的时区。我同意丹尼尔·贝克和罗伯特的观点。对于年龄来说,这是一个不可行的精确水平。如果我12月在英国出生,住在新西兰(+13小时),在阿拉斯加度假(-1天或+13小时),我什么时候庆祝生日?我建议你在自己出生地的周年纪念日前考虑自己年长一岁。即使你仍然意识到这并不完全正确。我妹妹和我出生时相隔366天。然而,我出生在22:20,她出生在00:01(我父亲用计时服务检查了医院的时钟)。技术上是365d和41分钟。然而,我们生日的不同总是被引用为“一年一天”。

你错过了一条重要的信息。用户的出生地。将用户当前的本地时间减少到您的本地时间只会有助于消除今天日期的潜在差异。要使年龄精确到+/- 1天,你还必须考虑他们出生地的时区。我同意丹尼尔·贝克和罗伯特的观点。对于年龄来说,这是一个不可行的精确水平。如果我12月在英国出生,住在新西兰(+13小时),在阿拉斯加度假(-1天或+13小时),我什么时候庆祝生日?我建议你在自己出生地的周年纪念日前考虑自己年长一岁。即使你仍然意识到这并不完全正确。我妹妹和我出生时相隔366天。然而,我出生在22:20,她出生在00:01(我父亲用计时服务检查了医院的时钟)。技术上是365d和41分钟。然而,我们生日的不同总是被引用为“一年一天”。

日期是“代码”> 1970年1月1日0:00:0 UTC/<代码>之后的毫秒数。那么,如果你考虑用户出生时区的话,一个小数学会允许你算出它的值吗?没有人会因为你是美国人而把自己的出生日期改成任意的美国日期not@JaromandaX考虑这种情况。今天是我的生日,我在澳大利亚已经26岁了。但在美国,在那个特殊的时刻,我的年龄仍然是25岁零364天。如果我使用JavaCScript的date对象,它将获取本地系统时间,并且年龄计算将不一致。这是我希望避免发生的情况。我希望年龄计算保持一致,无论用户的地理位置和/或系统时间如何。除非您同时要求用户的出生位置,否则无法达到该精度水平。年龄计算中不考虑时区。出生于UTC-5但生活在UTC+10时区的人不必等到下午3点才庆祝他们的16岁生日,也不必满足任何管理里程碑。你问他们出生日期的时区吗?或者他们的出生时间?如果不是,只要使用没有时区的日期。日期是从<代码> 1970年1月1日0:00:0 UTC < /代码>的毫秒数。那么,如果你考虑用户出生时区的话,一个小数学会允许你算出它。没有人会因为你是美国人而把自己的出生日期改成任意的美国日期not@JaromandaX考虑这种情况。今天是我的生日,我在澳大利亚已经26岁了。但在美国,在那个特殊的时刻,我的年龄仍然是25岁零364天。如果我使用JavaCScript的date对象,它将获取本地系统时间,并且年龄计算将不一致。这是我希望避免发生的情况。我希望年龄计算保持一致,无论用户的地理位置和/或系统时间如何。除非您同时要求用户的出生位置,否则无法达到该精度水平。年龄计算中不考虑时区。出生在UTC-5但生活在UTC+10时区的人没有