2015-04-09 5 views
3

У меня есть следующий код в Java, который возвращает 549255600000:REPLICATE в Java GetTime() в PHP

Date date = new Date(87, 4, 29); 
long micro = date.getTime(); 
System.out.println(micro); 

Следующая в PHP возвращает другое значение 546663600000:

var_dump(strtotime('1987-04-29') * 1000) 

мне нужна функция PHP, которая возвращает то же самое из кода Java. Почему это другое?

выше в Java напечатает же РНР:

// date variable is the same 
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
    utilDate = formatter.parse(date); 
    System.out.println("utilDate: " + utilDate.getTime()); 

Может быть, ошибка в первом Java сниппета.

+0

Получаю еще другой номер: http://3v4l.org/BOJFq - Вы уверены, что правильно введенные данные? –

+0

@Bulk Мне нужно получить 549255600000 –

+3

Имейте в виду, что некоторые языки работают с нулевыми месяцами. Так что для некоторых диапазон месяцев от 0 до 11, для других языков это от 1 до 12. Так что просто проверьте это, чтобы убедиться, что это правильно для Java и PHP – ndsmyter

ответ

1

Как указано в @ndsmyter, проблема заключается в том, что первый фрагмент java должен быть 3 в параметре месяца, поскольку месяц равен от 0 до 11. Таким образом, он будет выводить 546663600000, как в PHP-фрагменте.

Date date = new Date(87, 3, 29); 
long micro = date.getTime(); 
System.out.println(micro); 
+0

Добро пожаловать ;-) http://stackoverflow.com/questions/29537488/replicate-javas-gettime-in-php#comment47227767_29537488 – ndsmyter

+0

@ndsmyter Добавлены кредиты –

+0

Оценка! :-) – ndsmyter