在Javascript中准确计算年龄

时间:2018-03-19 23:32:32

标签: javascript

想象一下这个场景 - 我的基于javascript的Web应用程序允许用户购买保险单,全球用户都可以访问。在本申请中,准确的年龄计算是最重要的,因为保险费是根据年龄计算的。年龄应按如下方式计算 -

mask = tf.tile(Y[:, :, :, 0:1], [1, 1, 1, 5]) #repeating the first item 5 times
mask_first = tf.tile(Y[:, :, :, 0:1], [1, 1, 1, 1]) #repeating the first item 1 time

mask_of_ones = tf.ones(tf.shape(mask_first))

full_mask = tf.concat([tf.to_float(mask_of_ones), tf.to_float(mask[:, :, :, 1:])], 3)

cost = tf.reduce_mean(tf.square(tf.multiply(full_mask, tf.to_float(tf.subtract(Y_hat, Y, name="cost")))))

据我所知,我不能使用javascript的本地Date()对象来计算用户的年龄,因为这会返回本地系统时间,以防用户系统的时间是不正确或用户处于不同的时区,年龄计算不准确。

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

请分享您的意见。

提前致谢!

2 个答案:

答案 0 :(得分:4)

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

(当然,这对于任何表单验证都是正确的 - 在客户端验证以方便用户,然后再在服务器上进行验证以防止用户恶作剧。)

答案 1 :(得分:0)

您缺少重要的信息。用户的出生地。世界各地的所有混乱都减少了用户当地时间到当地时间只会有助于消除今天的潜在差异。要将年龄精确到+/- 1天,您还必须考虑其出生地的时区。我同意@Daniel Beck和@robG。这对于年龄来说是不可行的精确度。如果我12月出生在英国并居住在新西兰(+ 13小时)并在阿拉斯加度假( - 1d OR + 13h)我什么时候庆祝我的生日?我建议你在自己出生日期的周年纪念日考虑自己要年满一岁。即使你仍然意识到这是不对的。我姐姐和我相隔366天出生。然而,我出生于22:20,她出生在00:01(我父亲用时间服务检查了医院时钟)。技术上365d和41min。然而,我们生日的差异总是被称为“一年又一天”。