Javascript 在多个平台上处理不同的日期格式

Javascript 在多个平台上处理不同的日期格式,javascript,ios,mysql,datetime,datetime-format,Javascript,Ios,Mysql,Datetime,Datetime Format,我有一个web应用程序,它严重依赖于时间戳(跟踪用户何时启动计时器、何时暂停、何时从暂停返回、何时启动任务、何时暂停任务、何时恢复任务、何时完成任务、何时停止计时器) 在某些地方,我必须做一个计算。例如,活动任务时间是任务完成时间-任务开始时间-此任务每次暂停的结束和开始时间之差的总和 在开发此应用程序时,我使用了我能找到的最标准的日期格式: YYYY:MM:DD HH:MM:SS - 2021:03:08 14:31:50 在所有android手机、linux和windows PC上,我都测

我有一个web应用程序,它严重依赖于
时间戳
(跟踪用户何时启动计时器、何时暂停、何时从暂停返回、何时启动任务、何时暂停任务、何时恢复任务、何时完成任务、何时停止计时器)

在某些地方,我必须做一个计算。例如,活动任务时间是任务完成时间-任务开始时间-此任务每次暂停的结束和开始时间之差的总和

在开发此应用程序时,我使用了我能找到的最标准的日期格式:

YYYY:MM:DD HH:MM:SS - 2021:03:08 14:31:50
在所有android手机、linux和windows PC上,我都测试过这个应用程序,它可以正常工作,但在苹果设备(Mac和iPhone)上,它无法将这个datetime字符串转换为JS datetime对象,因此在所有涉及datetime的计算中,我得到NaN(日期转换不正确时,这是一个非常常见的错误)

幸运的是,我正在使用基于
sqlalchemy
的自定义MySQL工具,在早期开发阶段,我编写了一个函数,定义了数据库返回的日期格式,因此我将其更改为:

DD/MM/YYYY HH:MM:SS - 03/08/2021 14:35:19
这解决了主要问题——在苹果设备上执行日期时间计算,但现在我有一个更大的问题——写入数据库。数据库无法识别上述格式,导致以下错误:

(pymysql.err.OperationalError) (1292, "Incorrect datetime value: '08/03/2021 14:08:45' for column `WM_4`.`_carts`.`_order_date` at row 1")
[SQL: UPDATE _carts SET _order_date = %s, _status_id = %s, _to_site = %s, _user_id = %s WHERE _id = %s;]
[parameters: ('08/03/2021 14:08:45', 4, 7, 9, 1)]
我可以通过创建另一个函数来解决这个问题,该函数将日期转换回以前接受的格式,但在这一点上,这看起来像是在兜圈子,在我看来不是一个可接受的解决方案


当然有更好的办法来解决这个问题。我确信其他人在Apple设备上遇到了日期时间格式问题,因此我想知道他们是如何解决的。

始终使用日期数据类型(或整数时间戳)存储日期时间-无论您需要从a到B(以及从B到B再到B)-例如:
\u order\u date=STR\u to\u date(%s),%d/%m/%Y%h:%I:%s')
,它(因为今天是2021年3月8日)将存储2021/03/08 plus:which:thetimes'有一个国际标准,用于表示日期/时间值。恕我直言,你没有使用它。是的,你绝对正确@O.Jones,我完全不知道这个标准。谢谢你提供这些信息。@是的,我就是这样做的。我只是通过在运行查询之前将日期格式转换回
YYYY-MM-DD HH:MM:SS
解决了这个问题。它确实需要一点处理时间,但不会对性能造成极大影响。然而,琼斯仍然是正确的,我应该遵循标准,而不是我自己的标准。顺便说一句,如果你从标准日期/时间字符串中删除时区指示器(2021-03-08 14:39:11Z中的
Z
),你可以直接将该字符串用作MySQL中的
DATETIME
TIMESTAMP
常量。