js怎么把toLocaleString转成时间戳?

微信小程序,var nowtime = (new Date()).toLocaleString(('zh', { hour12: false }))获取本地时间,得到的格式为2020/4/20 下午12:24:47,怎么转成时间戳。因为涉及到海外用户,所以先获取本地时间,而不是直接去获取时间戳

不是很确定的你的目的,但是以我的经验这样做法可能不够正确,越是跨地区的越是需要时间戳。我只能猜测到你可能希望在美国和德国等等地区的用户只显示中国当地的时间。但是你这种的做法也可能是错误。应该是var nowtime = (new Date().toLocaleString('zh', { timeZone: 'asia/shanghai', hours12: false })),加上timeZone才能让海外的用户得到准确的中国时间; 而且你可以先获取时间戳再做本地时间转换。
var date = new Date();
var timestamp = date.getTime();
var nowTime = date.toLocaleString('zh', { timeZone: 'asia/shanghai', hours12: false })

如果是后端传给你就是字符串的日期,你要他们尽量给你时间戳。如果是自己拿个时间戳应该不是什么问题。

如果你非得这样做必须替换掉PM或者下午这些词。我做的很粗暴,随便看看就好。
时间比较复杂的话建议用moment.js和day.js
var nowtime = (new Date()).toLocaleString(('zh', { hour12: false }))
function localeDateStringtoTimestamp(dateString) {
if (dateString) {
if (dateString.split('上午').length == 2) {
var _date = dateString.split('上午').join("");
return new Date(_date).getTime()
}
if (dateString.split('下午').length == 2) {
var _dateArray = dateString.split('下午');
var ymd = _dateArray[0];
var hms = _dateArray[1].split(":");
hms[0] = parseInt(hms[0]) < 10 ? (parseInt(hms[0]) + 12) + '' : hms[0];
return new Date(ymd + hms.join(':')).getTime();
}
}
}
console.log(localeDateStringtoTimestamp(nowtime))
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-21
new Date().toISOString();

这个是世界时获取方法,如果不知道世界时是什么东西,去百度了解一下追问

直接用Date.parse(new Date().toString());获取的时间戳,中国人手机都正常的,wechat海外版的就炸了

第2个回答  2020-04-20
那何不换一种思路,先获得时间戳,再获取本地时间呢?