一个奇怪的时间格式问题

事情是这样的:

程序在往数据库中插入记录时提示: Incorrect datetime value: '‎2018‎-‎05‎-‎23‎‎ ‎11‎:‎42‎:‎53' for column 'time' at row 1

后来我复制了提示中的'2018‎-‎05‎-‎23‎‎ ‎11‎:‎42‎:‎53',然后手动向数据库中插入,保存后结果'2018‎-‎05‎-‎23‎‎ ‎11‎:‎42‎:‎53'自动变成了'0000-00-00 00:00:00' ,接着我手打了'2018‎-‎05‎-‎23‎‎ ‎11‎:‎42‎:‎53'
这时就可以正常插入。

但是错误提示中的'2018‎-‎05‎-‎23‎‎ ‎11‎:‎42‎:‎53'和我手打的'2018‎-‎05‎-‎23‎‎ ‎11‎:‎42‎:‎53'根本没有什么区别啊?我用svn对比了两个字符串,确实是不一样,但是看不出哪里不一样。还请大神们指点一下。谢谢!

以下为错误时间(大神们可以复制一下,往数据库中插入试一试):
2018‎-‎05‎-‎23‎‎ ‎11‎:‎42‎:‎53

以下为手打时间:
2018-05-23 11:42:53

clipboard.png

阅读 3k
4 个回答
'2018‎-‎05‎-‎23‎‎ ‎11‎:‎42‎:‎53'.split('').map(v => v.charCodeAt(0))

/*
[50, 48, 49, 56, 8206, 45, 8206, 48, 53, 8206, 45, 8206, 50, 51, 8206, 8206, 32, 8206, 49, 49, 8206, 58, 8206, 52, 50, 8206, 58, 8206, 53, 51]
*/

打印了一下, 混入了 Unicode 码点为 8206 的奇怪东东?

查了一下, 是什么 左至右符号.

你可以这么查:

'‎'.charCodeAt(0).toString(16)

clipboard.png

当然以后要注意,说不定还有 3位的字、

你的两个时间我复制到Chrome里都是这样的

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题