Помимо всех ответов здесь, стандартом де-факто в обработке даты и времени js в настоящее время является moment.js удивил, что никто не упомянул об этом здесь
alonisser 08
2
@ alonisser - возможно, потому что преобразование значения времени в Date тривиально. Форматировать его тоже не составляет особого труда.
RobG
Ответы:
130
Значение 1382086394000 , вероятно, является значением времени, которое представляет собой количество миллисекунд, прошедших с 1970-01-01T00: 00: 00Z. Вы можете использовать его для создания объекта даты ECMAScript с помощью конструктора Date :
var d = newDate(1382086394000);
Как превратить это во что-то читаемое, зависит от вас. Простая отправка его на вывод должна вызывать внутренний (и полностью зависящий от реализации) метод toString *, который обычно печатает эквивалентное системное время в удобочитаемой форме, например
Fri Oct 18201318:53:14 GMT+1000 (EST)
В ES5 есть и другие встроенные параметры форматирования:
и так далее. Обратите внимание, что большинство из них зависит от реализации и будет отличаться в разных браузерах. Если вам нужен одинаковый формат для всех браузеров, вам нужно будет отформатировать дату самостоятельно, например:
* Формат Date.prototype.toString стандартизирован в ECMAScript 2018 . Возможно, пройдет некоторое время, прежде чем он станет повсеместным во всех реализациях, но, по крайней мере, более распространенные браузеры поддерживают его сейчас.
Также есть togmtstring (), но она устарела. Я не понимаю, почему есть tolocalestring (), как в JS, в браузере все локально. Или toLocaleString - это разделение на Nodejs? Если вы используете серверный JS и часовой пояс между клиентом и сервером отличается, вы получаете клиентскую зону?
Timo
1
@ timo - использование «локали» является неправильным термином для метода, который пытается представить формат, совместимый с предпочтениями форматирования пользователя. К сожалению, он основан на языке, который не очень хорошо определяет предпочтительный формат. Было бы предпочтительнее форматировать даты на основе системных предпочтений для форматирования даты, а не гораздо менее конкретного языкового кода.
RobG
32
Это прекрасно работает. Проверено в chromeбраузере:
Вот простые способы избежать путаницы в формате даты:
на текущую дату:
var current_date=newDate();
чтобы получить метку времени текущей даты:
var timestamp=newDate().getTime();
чтобы преобразовать конкретную дату в метку времени:
var timestamp_formation=newDate('mm/dd/yyyy').getTime();
чтобы преобразовать метку времени в дату:
var timestamp=newDate('02/10/2016').getTime();
var todate=newDate(timestamp).getDate();
var tomonth=newDate(timestamp).getMonth()+1;
var toyear=newDate(timestamp).getFullYear();
var original_date=tomonth+'/'+todate+'/'+toyear;
OUTPUT:
02/10/2016
да @melpomene, половина кода не имеет значения, но я написал это, чтобы развеять дальнейшие сомнения по поводу формирования даты .. !!! и еще одна вещь, которую я не копировал ниоткуда. Я попробовал это в своем собственном коде и 2 дня назад я работал над этим
Trojan
1
Неважно, скопировали вы это буквально или нет. Дело в том, что вся информация уже есть в другом ответе. Между прочим, ваш последний пример на самом деле не дает того результата, о котором вы заявляете.
melpomene
Показанный результат на самом деле не соответствует выходному коду (10
февраля 2016 г.
9
нам нужно создать новую функцию, используя JavaScript.
Это то, что я сделал для API Instagram. преобразовал метку времени с помощью метода даты путем умножения на 1000. а затем добавил все объекты индивидуально, например (год, месяцы и т. д.)
создал название настраиваемого списка месяцев и сопоставил его с getMonth()методом, который возвращает индекс месяца.
Ответы:
Значение 1382086394000 , вероятно, является значением времени, которое представляет собой количество миллисекунд, прошедших с 1970-01-01T00: 00: 00Z. Вы можете использовать его для создания объекта даты ECMAScript с помощью конструктора Date :
var d = new Date(1382086394000);
Как превратить это во что-то читаемое, зависит от вас. Простая отправка его на вывод должна вызывать внутренний
(и полностью зависящий от реализации)метод toString *, который обычно печатает эквивалентное системное время в удобочитаемой форме, напримерFri Oct 18 2013 18:53:14 GMT+1000 (EST)
В ES5 есть и другие встроенные параметры форматирования:
и так далее. Обратите внимание, что большинство из них зависит от реализации и будет отличаться в разных браузерах. Если вам нужен одинаковый формат для всех браузеров, вам нужно будет отформатировать дату самостоятельно, например:
alert(d.getDate() + '/' + (d.getMonth()+1) + '/' + d.getFullYear());
* Формат Date.prototype.toString стандартизирован в ECMAScript 2018 . Возможно, пройдет некоторое время, прежде чем он станет повсеместным во всех реализациях, но, по крайней мере, более распространенные браузеры поддерживают его сейчас.
источник
Это прекрасно работает. Проверено в
chrome
браузере:var theDate = new Date(timeStamp_value * 1000); dateString = theDate.toGMTString(); alert(dateString );
источник
1000
. В противном случае вы перенесетесь в космос будущего !!почему бы просто не
new Date (timestamp);
Дата - это дата, форматирование - другое дело.
источник
Moment.js может конвертировать временные метки unix в любой пользовательский формат
В этом случае :
var time = moment(1382086394000).format("DD-MM-YYYY h:mm:ss");
распечатает
18-10-2013 11:53:14
;Вот плункер, который это демонстрирует.
источник
Вот простые способы избежать путаницы в формате даты:
на текущую дату:
var current_date=new Date();
чтобы получить метку времени текущей даты:
var timestamp=new Date().getTime();
чтобы преобразовать конкретную дату в метку времени:
var timestamp_formation=new Date('mm/dd/yyyy').getTime();
чтобы преобразовать метку времени в дату:
var timestamp=new Date('02/10/2016').getTime(); var todate=new Date(timestamp).getDate(); var tomonth=new Date(timestamp).getMonth()+1; var toyear=new Date(timestamp).getFullYear(); var original_date=tomonth+'/'+todate+'/'+toyear; OUTPUT: 02/10/2016
источник
нам нужно создать новую функцию, используя JavaScript.
function unixTime(unixtime) { var u = new Date(unixtime*1000); return u.getUTCFullYear() + '-' + ('0' + u.getUTCMonth()).slice(-2) + '-' + ('0' + u.getUTCDate()).slice(-2) + ' ' + ('0' + u.getUTCHours()).slice(-2) + ':' + ('0' + u.getUTCMinutes()).slice(-2) + ':' + ('0' + u.getUTCSeconds()).slice(-2) + '.' + (u.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) }; console.log(unixTime(1370001284)) 2016-04-30 08:36:26.000
источник
formatDate
это функция, которую вы можете вызвать и передать дату, которую вы хотите отформатироватьdd/mm/yyyy
var unformatedDate = new Date("2017-08-10 18:30:00"); $("#hello").append(formatDate(unformatedDate)); function formatDate(nowDate) { return nowDate.getDate() +"/"+ (nowDate.getMonth() + 1) + '/'+ nowDate.getFullYear(); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="hello"> </div>
источник
Это то, что я сделал для API Instagram. преобразовал метку времени с помощью метода даты путем умножения на 1000. а затем добавил все объекты индивидуально, например (год, месяцы и т. д.)
создал название настраиваемого списка месяцев и сопоставил его с
getMonth()
методом, который возвращает индекс месяца.convertStampDate(unixtimestamp){ // Unixtimestamp // Months array var months_arr = ['January','February','March','April','May','June','July','August','September','October','November','December']; // Convert timestamp to milliseconds var date = new Date(unixtimestamp*1000); // Year var year = date.getFullYear(); // Month var month = months_arr[date.getMonth()]; // Day var day = date.getDate(); // Hours var hours = date.getHours(); // Minutes var minutes = "0" + date.getMinutes(); // Seconds var seconds = "0" + date.getSeconds(); // Display date time in MM-dd-yyyy h:m:s format var fulldate = month+' '+day+'-'+year+' '+hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2); // filtered fate var convdataTime = month+' '+day; return convdataTime; }
Звонок с аргументом штампа
convertStampDate('1382086394000')
вот и все.
источник
Мой вариант ES6 создает такую строку
2020-04-05_16:39:45.85725
. Не стесняйтесь изменять оператор return, чтобы получить нужный вам формат:const getDateStringServ = timestamp => { const plus0 = num => `0${num.toString()}`.slice(-2) const d = new Date(timestamp) const year = d.getFullYear() const monthTmp = d.getMonth() + 1 const month = plus0(monthTmp) const date = plus0(d.getDate()) const hour = plus0(d.getHours()) const minute = plus0(d.getMinutes()) const second = plus0(d.getSeconds()) const rest = timestamp.toString().slice(-5) return `${year}-${month}-${date}_${hour}:${minute}:${second}.${rest}` }
источник
Чтобы вычислить дату в метке времени с заданной даты
// Чтобы получить дату метки времени из обычной даты : в формате - 1560105000000
// дата ввода может быть в формате: "2019-06-09T18: 30: 00.000Z"
this.calculateDateInTimestamp = function (inputDate) { var date = new Date(inputDate); return date.getTime(); }
вывод : 1560018600000
источник