简体   繁体   English

如何将“YYYY-MM-DD hh:mm:ss”格式的日期转换为 UNIX 时间戳

[英]How to convert date in format "YYYY-MM-DD hh:mm:ss" to UNIX timestamp

How can I convert a time in the format "YYYY-MM-DD hh:mm:ss" (eg "2011-07-15 13:18:52" ) to a UNIX timestamp?如何将格式为“YYYY-MM-DD hh:mm:ss”(例如"2011-07-15 13:18:52" )的时间转换为 UNIX 时间戳?

I tried this piece of Javascript code:我试了这段 Javascript 代码:

date = new Date("2011-07-15").getTime() / 1000
alert(date)

And it works, but it results in NaN when I add time('2011-07-15 13:18:52') to the input.它可以工作,但是当我在输入中添加 time('2011-07-15 13:18:52') 时会导致NaN

Use the long date constructor and specify all date/time components:使用长日期构造函数并指定所有日期/时间组件:

var match = '2011-07-15 13:18:52'.match(/^(\d+)-(\d+)-(\d+) (\d+)\:(\d+)\:(\d+)$/)
var date = new Date(match[1], match[2] - 1, match[3], match[4], match[5], match[6])
// ------------------------------------^^^
// month must be between 0 and 11, not 1 and 12
console.log(date);
console.log(date.getTime() / 1000);

Following code will work for format YYYY-MM-DD hh:mm:ss :以下代码适用于格式YYYY-MM-DD hh:mm:ss

function parse(dateAsString) {
    return new Date(dateAsString.replace(/-/g, '/'))
}

This code converts YYYY-MM-DD hh:mm:ss to YYYY/MM/DD hh:mm:ss that is easily parsed by Date constructor.此代码将YYYY-MM-DD hh:mm:ss转换为YYYY/MM/DD hh:mm:ss ,这很容易被Date构造函数解析。

You've accepted an answer, but a much simpler regular expression can be used:您已接受答案,但可以使用更简单的正则表达式:

function stringToDate(s)  {
  s = s.split(/[-: ]/);
  return new Date(s[0], s[1]-1, s[2], s[3], s[4], s[5]);
}

alert(stringToDate('2011-7-15 20:46:3'));

Of course the input string must be the correct format.当然,输入字符串必须是正确的格式。

Months start from 0, unlike the days!月份从 0 开始,与日子不同! So this will work perfectly ( tested )所以这将完美地工作(测试

function dateToUnix(year, month, day, hour, minute, second) {
    return ((new Date(Date.UTC(year, month - 1, day, hour, minute, second))).getTime() / 1000.0);
}

This returns number of milliseconds since Jan. 1st 1970: Date.parse('2011-07-15 10:05:20')这将返回自 1970 年 1 月 1 日以来的毫秒数: Date.parse('2011-07-15 10:05:20')

Just divide by 1000 to get seconds instead of milliseconds..只需除以 1000 即可获得秒数而不是毫秒数..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用JavaScript将数据格式“ YYYY-mm-dd hh:mm:ss”转换为“ dd-mm-YYYY hh:mm:ss”? - How to convert data format “YYYY-mm-dd hh:mm:ss” to “dd-mm-YYYY hh:mm:ss” using javascript? 如何将时间戳转换为日期格式yyyy-MM-dd'T'HH:mm:ssXXX? - How can I convert timestamp to date format yyyy-MM-dd'T'HH:mm:ssXXX? 如何使用javaScript将UTC日期时间转换为yyyy-mm-dd hh:mm:ss日期时间格式? - How to convert UTC date time into yyyy-mm-dd hh:mm:ss date time format using javaScript? 如何检查字符串是否为有效日期格式(格式应为:YYYY-MM-DD HH:mm:ss) - how to check the string is valid date format or not (format should be in : YYYY-MM-DD HH:mm:ss) 怎么把这个日期“ 2016年3月9日星期三09:48:09 PST”转换成“ YYYY-MM-DD HH:mm:ss”格式? - How to convert this date 'Wed Mar 9 09:48:09 PST 2016' to 'YYYY-MM-DD HH:mm:ss' format? 如何在 javascript 中解析 yyyy-MM-dd HH:mm:ss.SSS 格式的日期? - How to parse yyyy-MM-dd HH:mm:ss.SSS format date in javascript? 如何使用 NodeJS 将 UTC 日期格式化为“YYYY-MM-DD hh:mm:ss”字符串? - How to format a UTC date as a `YYYY-MM-DD hh:mm:ss` string using NodeJS? Javascript'yyyy-mm-dd hh:mm:ss'到时间戳 - Javascript 'yyyy-mm-dd hh:mm:ss' to timestamp 如何将日期格式化为 (dd/mm/yyyy hh:mm:ss) - How to format the date to (dd/mm/yyyy hh:mm:ss) Ext.js-将时间戳记格式设置为yyyy-mm-dd hh:mm:ss [.fffffffff] - Ext.js - Format TimeStamp into yyyy-mm-dd hh:mm:ss[.fffffffff]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM