В Python 3.x вы можете использовать декларацию nonlocal
(в nested
), чтобы сообщить Python, что вы хотите присвоить переменной count
в nesting
.
В Python 2.x вы просто не можете назначить count
в nesting
из nested
. Тем не менее, вы можете обойти это, не присваивая переменной переменную, а используя изменяемый контейнер:
def nesting():
count = [0]
def nested():
count[0] += 1
for i in range(10):
nested()
print count[0]
Хотя для нетривиальных случаев, обычный подход Python заключается в переносе данные и функциональность в классе, а не с использованием замыканий.
Возвращаются миллисекунды с начала эпохи. Вы можете:
var d = new Date();
d.setTime(1245398693390);
document.write(d);
О том, как отформатировать дату точно так, как вы хотите, см. Полную справку Date
на http://www.w3schools.com/jsref/jsref_obj_date. asp
Вы можете удалить нецифровые числа, проанализировав целое число (, как предлагается здесь ):
var date = new Date(parseInt(jsonDate.substr(6)));
или применив следующее регулярное выражение (из Tominator в комментариях):
var jsonDate = jqueryCall(); // returns "/Date(1245398693390)/";
var re = /-?\d+/;
var m = re.exec(jsonDate);
var d = new Date(parseInt(m[0]));
Я использую этот метод некоторое время:
using System;
public static class ExtensionMethods {
// returns the number of milliseconds since Jan 1, 1970 (useful for converting C# dates to JS dates)
public static double UnixTicks(this DateTime dt)
{
DateTime d1 = new DateTime(1970, 1, 1);
DateTime d2 = dt.ToUniversalTime();
TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
return ts.TotalMilliseconds;
}
}
Предполагая, что вы разрабатываете против .NET 3.5, это прямое копирование / вставка. В противном случае вы можете перенести его.
Вы можете инкапсулировать это в объект JSON или просто записать его в поток ответа.
На стороне Javascript / JSON вы конвертируете это в дату, просто передавая галочки в новый объект Date:
jQuery.ajax({
...
success: function(msg) {
var d = new Date(msg);
}
}
Вы можете попробовать стороннюю библиотеку, например json.net На сайте проекта есть документация. Там сказано, что для этого требуется .net 3.5.
В противном случае есть еще один, называемый Nii.json, который, как мне кажется, является портом с java. Я нашел ссылку на это в этом блоге
Если у вас возникли проблемы с получением информации о времени, вы можете попробовать что-нибудь вроде это:
d.date = d.date.replace('/Date(', '');
d.date = d.date.replace(')/', '');
var expDate = new Date(parseInt(d.date));
Если передать DateTime
из кода .Net в код JavaScript,
C #:
DateTime net_datetime = DateTime.Now;
javascript обрабатывает его как строку, например "/ Date (1245398693390) /"
:
Вы можете преобразовать его как fllowing:
// convert the string to date correctly
var d = eval(net_datetime.slice(1, -1))
или:
// convert the string to date correctly
var d = eval("/Date(1245398693390)/".slice(1, -1))